91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux內(nèi)核中有三個(gè)watchdog

Linux閱碼場(chǎng) ? 來(lái)源:Linuxer ? 作者:Linuxer ? 2021-01-14 09:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux內(nèi)核中有三個(gè)watchdog(看門狗),它們都需要被悉心的喂養(yǎng)照料,分別是:

1. /dev/watchdog

2.softlockup檢測(cè)機(jī)制

3.hardlockup檢測(cè)機(jī)制

首先看 1./dev/watchdog,此看門狗該怎樣喂養(yǎng)呢,linux內(nèi)核中有一段樣例代碼:

pIYBAF__m46AJDUrAABmxI1OPdA311.png

此例子中,每隔10秒鐘就會(huì)向“/dev/watchdog"文件寫入0, 這就是喂狗過(guò)程,看到這個(gè)樣例,好像不太能感受到這個(gè)看門狗大的用處,但是放在實(shí)際工程中,用處太大了,舉個(gè)例子:

某國(guó)中央銀行在一臺(tái)有 內(nèi)存4T, 320個(gè)cpu核 的Linux服務(wù)器上跑一個(gè)數(shù)據(jù)庫(kù)程序,數(shù)據(jù)庫(kù)上存有他本國(guó)所有人民的銀行賬號(hào)信息,當(dāng)此數(shù)據(jù)庫(kù)程序在運(yùn)行過(guò)程中,發(fā)生了IO讀寫錯(cuò)誤,或者程序bug, 一下卡住了,那么他本國(guó)人民就都不能存錢取錢轉(zhuǎn)賬了,整個(gè)國(guó)民經(jīng)濟(jì)瞬間癱瘓。

此時(shí)想想看,Linux系統(tǒng)有沒有什么機(jī)制來(lái)解決這種問(wèn)題了,這時(shí)候“/dev/watchdog" 來(lái)了,

這個(gè)時(shí)候只需要在數(shù)據(jù)庫(kù)程序中加上類似上面的樣例程序,每隔10s中就去喂狗一次,

只要數(shù)據(jù)庫(kù)程序卡住,卡住之后就不能喂狗了,等到比如默認(rèn)60s以后,這只狗就罷工了,立馬會(huì)默認(rèn)觸發(fā)服務(wù)器重啟。

服務(wù)器重啟會(huì)重新加載數(shù)據(jù)庫(kù)程序, 或者服務(wù)器在重啟過(guò)程中,由于服務(wù)器與它所在的服務(wù)器集群失聯(lián),從而觸發(fā)集群中的分腦檢測(cè),把數(shù)據(jù)庫(kù)程序挪到集群中其它設(shè)備上跑,此時(shí)就減少了很多損失.所以這只狗/dev/watchdog 用處太大了。

再來(lái)看下它的實(shí)現(xiàn)原理:

pIYBAF__m6qAYrz7AAAcv44TA2U118.png

看到系統(tǒng)中有個(gè)內(nèi)核線程watchdogd, 和兩個(gè)字符文件:/dev/watchdog和/dev/watchdog0

其中watchdogd實(shí)時(shí)調(diào)度類線程負(fù)責(zé)具體執(zhí)行喂狗,/dev/watchdog是內(nèi)核提供給用戶層的通用操作接口文件,用來(lái)開啟這只狗,喂狗,查詢狀態(tài)等。/dev/watchdog0 是具體的狗子實(shí)現(xiàn),可以基于具體的物理設(shè)備實(shí)現(xiàn),或者是softdog內(nèi)核模塊以軟件的方式(具體使用方法:modprobe softdog)模擬硬件實(shí)現(xiàn)。

來(lái)看下softdog內(nèi)核模塊怎樣模擬硬件實(shí)現(xiàn)這個(gè)功能:

pIYBAF__m8KAShblAABEmHNhhos553.png

從代碼實(shí)現(xiàn)來(lái)看,很好理解,在開啟看門狗(open "/dev/watchdog")之后,默認(rèn)60s以后就會(huì)觸發(fā)系統(tǒng)重啟,在60s倒計(jì)時(shí)過(guò)程中,只有喂狗(softdog_ping)一次,它就又會(huì)恢復(fù)到60s以后才會(huì)觸發(fā)系統(tǒng)重啟,所以只要一直喂狗,emergency_restart()就不會(huì)執(zhí)行,系統(tǒng)就不會(huì)重啟。

再來(lái)看下2.softlockup檢測(cè)機(jī)制 和 3.hardlockup檢測(cè)機(jī)制。

softlockup檢測(cè)機(jī)制的喂狗方式是,每cpu上的hrtimer會(huì)喚醒一個(gè)migration/N內(nèi)核線程,migration/N每次被喚醒之后都會(huì)對(duì)某個(gè)時(shí)間戳進(jìn)行重置。

hardlockup檢測(cè)機(jī)制的喂狗方式是,hrtimer每次執(zhí)行時(shí)都會(huì)對(duì)一個(gè)變量進(jìn)行加一。

關(guān)于softlockup和hardlockup檢測(cè)機(jī)制的具體原理實(shí)現(xiàn)和應(yīng)用場(chǎng)景,我最近發(fā)布了一個(gè)視頻“Linux常見鎖和lockup檢查機(jī)制"包含了從實(shí)現(xiàn)原理(linux內(nèi)核代碼層)和原理驗(yàn)證(使用ftrace調(diào)試手段)、樣例代碼、動(dòng)手模擬實(shí)驗(yàn),可以全方位理解softlockup/hardlockup.

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11758

    瀏覽量

    219008
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4967

    瀏覽量

    73954
  • Watchdog
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    9731

原文標(biāo)題:總結(jié)Linux內(nèi)核中watchdog

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux內(nèi)核的“心跳”:jiffies如何為系統(tǒng)計(jì)時(shí)?

    Linux 內(nèi)核的世界里,有一個(gè)默默工作的 "計(jì)時(shí)器"——jiffies。它不像我們手機(jī)上的時(shí)鐘那樣顯示年月日,卻掌控著內(nèi)核中絕大多數(shù)時(shí)間相關(guān)的操作:從進(jìn)程調(diào)度到設(shè)備驅(qū)動(dòng)的定時(shí)檢查
    的頭像 發(fā)表于 02-04 16:27 ?814次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>的“心跳”:jiffies如何為系統(tǒng)計(jì)時(shí)?

    深入RK3588內(nèi)核:rockchip_linux_defconfig的作用與調(diào)試價(jià)值

    在 RK3588 芯片的 Linux 開發(fā)中,有一個(gè)文件始終是開發(fā)者繞不開的核心 ——kernel/arch/arm64/configs/rockchip_linux_defconfig。無(wú)論是首次
    的頭像 發(fā)表于 02-03 15:56 ?1154次閱讀
    深入RK3588<b class='flag-5'>內(nèi)核</b>:rockchip_<b class='flag-5'>linux</b>_defconfig的作用與調(diào)試價(jià)值

    深度解析ES8389/ES8390/音頻芯片Linux驅(qū)動(dòng)(Linux6.1內(nèi)核

    基于 Linux6.1 內(nèi)核,從驅(qū)動(dòng)架構(gòu)、寄存器配置、核心函數(shù)、數(shù)據(jù)流走向四個(gè)維度,完整拆解 ES8389 的 Linux 驅(qū)動(dòng)實(shí)現(xiàn),幫你吃透這款芯片的驅(qū)動(dòng)邏輯。 ? ? 注意:在講解
    的頭像 發(fā)表于 02-02 11:37 ?1327次閱讀
    深度解析ES8389/ES8390/音頻芯片<b class='flag-5'>Linux</b>驅(qū)動(dòng)(<b class='flag-5'>Linux</b>6.1<b class='flag-5'>內(nèi)核</b>)

    內(nèi)核配置項(xiàng)引發(fā)網(wǎng)絡(luò)性能下降的深度剖析

    在嵌入式系統(tǒng)開發(fā)中,內(nèi)核配置對(duì)系統(tǒng)性能起著關(guān)鍵作用。近期在對(duì)基于 Rockchip 平臺(tái)的 Linux 內(nèi)核配置調(diào)試時(shí),發(fā)現(xiàn)三個(gè)內(nèi)核跟蹤器配
    的頭像 發(fā)表于 02-01 16:48 ?1662次閱讀
    <b class='flag-5'>內(nèi)核</b>配置項(xiàng)引發(fā)網(wǎng)絡(luò)性能下降的深度剖析

    Linux系統(tǒng)內(nèi)核參數(shù)調(diào)優(yōu)實(shí)戰(zhàn)指南

    Linux 內(nèi)核參數(shù)調(diào)優(yōu)是系統(tǒng)性能優(yōu)化的核心環(huán)節(jié)。隨著云原生架構(gòu)的普及和硬件性能的飛速提升,默認(rèn)的內(nèi)核參數(shù)配置往往無(wú)法充分發(fā)揮系統(tǒng)潛力。在高并發(fā) Web 服務(wù)、大數(shù)據(jù)處理、容器化部署等場(chǎng)景下,合理的
    的頭像 發(fā)表于 01-28 14:27 ?426次閱讀

    三個(gè)經(jīng)典開關(guān)電源實(shí)際問(wèn)題解析

    下面三個(gè)關(guān)于多路輸出電源連續(xù)工作模式的問(wèn)題,測(cè)試一下您的電源設(shè)計(jì)知識(shí)。然后核對(duì)您的答案。
    的頭像 發(fā)表于 01-22 16:08 ?1843次閱讀
    <b class='flag-5'>三個(gè)</b>經(jīng)典開關(guān)電源實(shí)際問(wèn)題解析

    【「Linux 設(shè)備驅(qū)動(dòng)開發(fā)(第 2 版)」閱讀體驗(yàn)】+讀內(nèi)核處理的核心輔助函數(shù)

    “處理內(nèi)核的核心輔助函數(shù)”進(jìn)行學(xué)習(xí)。 第3章又是以5個(gè)主題展開討論學(xué)習(xí),①、Linux內(nèi)核加鎖機(jī)制和共享資源;②、處理內(nèi)核等待、睡眠和延遲機(jī)
    發(fā)表于 01-10 22:08

    Linux內(nèi)核printk日志級(jí)別全解析:從參數(shù)解讀到實(shí)操配置

    一、開篇:一個(gè)命令引出的核心問(wèn)題 在?Linux?終端執(zhí)行?cat /proc/sys/kernel/printk,你可能會(huì)看到這樣的輸出: 這串?dāng)?shù)字不是隨機(jī)的,而是內(nèi)核日志系統(tǒng)的“核心配置開關(guān)
    的頭像 發(fā)表于 11-20 15:54 ?1696次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>printk日志級(jí)別全解析:從參數(shù)解讀到實(shí)操配置

    RK3568運(yùn)行linux卡死,串口無(wú)輸出

    請(qǐng)問(wèn)一下RK3568和匹配的linux內(nèi)核 是否可以使能nmi watchdog.如何使能。這樣就可以保留到卡死現(xiàn)場(chǎng)。
    發(fā)表于 09-19 15:41

    RK3506開發(fā)板Xenomai內(nèi)核RT-Linux實(shí)時(shí)性系統(tǒng)適配教程與性能實(shí)測(cè),實(shí)測(cè)僅7μs穩(wěn)定延時(shí)

    本文基于觸覺智能RK3506核心板/開發(fā)板,介紹Xenomai內(nèi)核RT-Linux實(shí)時(shí)性系統(tǒng)適配,并附性能實(shí)測(cè)。簡(jiǎn)介與實(shí)測(cè)數(shù)據(jù)Xenomai簡(jiǎn)介XEnomai是一個(gè)實(shí)時(shí)子系統(tǒng),可與Linux
    的頭像 發(fā)表于 09-18 14:21 ?1384次閱讀
    RK3506開發(fā)板Xenomai<b class='flag-5'>內(nèi)核</b>RT-<b class='flag-5'>Linux</b>實(shí)時(shí)性系統(tǒng)適配教程與性能實(shí)測(cè),實(shí)測(cè)僅7μs穩(wěn)定延時(shí)

    怎么結(jié)合嵌入式,Linux,和FPGA三個(gè)方向達(dá)到一個(gè)均衡發(fā)展?

    在嵌入式領(lǐng)域,不少人都懷揣著讓嵌入式、Linux 和 FPGA 三個(gè)方向?qū)崿F(xiàn)均衡發(fā)展的夢(mèng)想,然而實(shí)踐中卻面臨諸多挑戰(zhàn)。就像備受矚目的全棧工程師稚暉君,他從大學(xué)玩單片機(jī)起步,憑借將智能算法融入嵌入式而
    的頭像 發(fā)表于 06-25 10:08 ?856次閱讀
    怎么結(jié)合嵌入式,<b class='flag-5'>Linux</b>,和FPGA<b class='flag-5'>三個(gè)</b>方向達(dá)到一<b class='flag-5'>個(gè)</b>均衡發(fā)展?

    如何配置和驗(yàn)證Linux內(nèi)核參數(shù)

    Linux系統(tǒng)運(yùn)維和性能優(yōu)化中,內(nèi)核參數(shù)(sysctl)的配置至關(guān)重要。合理的參數(shù)調(diào)整可以顯著提升網(wǎng)絡(luò)性能、系統(tǒng)穩(wěn)定性及資源利用率。然而,僅僅修改參數(shù)是不夠的,如何驗(yàn)證這些參數(shù)是否生效同樣關(guān)鍵。
    的頭像 發(fā)表于 05-29 17:40 ?1150次閱讀

    樹莓派4 性能大比拼:標(biāo)準(zhǔn)Linux與實(shí)時(shí)Linux 4.19內(nèi)核的延遲測(cè)試

    引言本文是對(duì)我之前關(guān)于RaspberryPi3同一主題的帖子的更新。與之前的帖子一樣,我使用的是隨Raspbian鏡像提供的標(biāo)準(zhǔn)內(nèi)核,以及應(yīng)用了RT補(bǔ)丁的相似內(nèi)核版本。對(duì)于實(shí)時(shí)版,我
    的頭像 發(fā)表于 03-25 09:39 ?809次閱讀
    樹莓派4 性能大比拼:標(biāo)準(zhǔn)<b class='flag-5'>Linux</b>與實(shí)時(shí)<b class='flag-5'>Linux</b> 4.19<b class='flag-5'>內(nèi)核</b>的延遲測(cè)試

    如何檢測(cè)極管的三個(gè)

    可以用萬(wàn)用表來(lái)初步確定極管的好壞及類型 (NPN 型還是 PNP 型 ),并辨別出e(發(fā)射極)、b(基極)、c(集電極)三個(gè)電極。
    發(fā)表于 03-08 16:40

    如何區(qū)分場(chǎng)效應(yīng)管mos管三個(gè)引腳

    場(chǎng)效應(yīng)管mos管三個(gè)引腳怎么區(qū)分
    發(fā)表于 03-07 09:20 ?0次下載