那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux內核中有三個watchdog

Linux閱碼場 ? 來源:Linuxer ? 作者:Linuxer ? 2021-01-14 09:15 ? 次閱讀

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

1. /dev/watchdog

2.softlockup檢測機制

3.hardlockup檢測機制

首先看 1./dev/watchdog,此看門狗該怎樣喂養呢,linux內核中有一段樣例代碼:

pIYBAF__m46AJDUrAABmxI1OPdA311.png

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

某國中央銀行在一臺有 內存4T, 320個cpu核 的Linux服務器上跑一個數據庫程序,數據庫上存有他本國所有人民的銀行賬號信息,當此數據庫程序在運行過程中,發生了IO讀寫錯誤,或者程序bug, 一下卡住了,那么他本國人民就都不能存錢取錢轉賬了,整個國民經濟瞬間癱瘓。

此時想想看,Linux系統有沒有什么機制來解決這種問題了,這時候“/dev/watchdog" 來了,

這個時候只需要在數據庫程序中加上類似上面的樣例程序,每隔10s中就去喂狗一次,

只要數據庫程序卡住,卡住之后就不能喂狗了,等到比如默認60s以后,這只狗就罷工了,立馬會默認觸發服務器重啟。

服務器重啟會重新加載數據庫程序, 或者服務器在重啟過程中,由于服務器與它所在的服務器集群失聯,從而觸發集群中的分腦檢測,把數據庫程序挪到集群中其它設備上跑,此時就減少了很多損失.所以這只狗/dev/watchdog 用處太大了。

再來看下它的實現原理:

pIYBAF__m6qAYrz7AAAcv44TA2U118.png

看到系統中有個內核線程watchdogd, 和兩個字符文件:/dev/watchdog和/dev/watchdog0

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

來看下softdog內核模塊怎樣模擬硬件實現這個功能:

pIYBAF__m8KAShblAABEmHNhhos553.png

從代碼實現來看,很好理解,在開啟看門狗(open "/dev/watchdog")之后,默認60s以后就會觸發系統重啟,在60s倒計時過程中,只有喂狗(softdog_ping)一次,它就又會恢復到60s以后才會觸發系統重啟,所以只要一直喂狗,emergency_restart()就不會執行,系統就不會重啟。

再來看下2.softlockup檢測機制 和 3.hardlockup檢測機制。

softlockup檢測機制的喂狗方式是,每cpu上的hrtimer會喚醒一個migration/N內核線程,migration/N每次被喚醒之后都會對某個時間戳進行重置。

hardlockup檢測機制的喂狗方式是,hrtimer每次執行時都會對一個變量進行加一。

關于softlockup和hardlockup檢測機制的具體原理實現和應用場景,我最近發布了一個視頻“Linux常見鎖和lockup檢查機制"包含了從實現原理(linux內核代碼層)和原理驗證(使用ftrace調試手段)、樣例代碼、動手模擬實驗,可以全方位理解softlockup/hardlockup.

責任編輯:lq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210392
  • 代碼
    +關注

    關注

    30

    文章

    4825

    瀏覽量

    69049
  • Watchdog
    +關注

    關注

    0

    文章

    11

    瀏覽量

    9449

原文標題:總結Linux內核中watchdog

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    所有Window Watchdog Supervisors

    電子發燒友網站提供《所有Window Watchdog Supervisors.pdf》資料免費下載
    發表于 10-10 10:37 ?0次下載
    所有Window <b class='flag-5'>Watchdog</b> Supervisors

    雙向晶閘管的三個電極分別是什么作用

    雙向晶閘管(Bidirectional Thyristor),也稱為雙向可控硅或雙向可控整流器,是一種四層端半導體器件,具有兩方向的導電能力。它在電力電子領域中有著廣泛的應用,如交流/直流
    的頭像 發表于 10-08 09:28 ?994次閱讀

    詳解linux內核的uevent機制

    linux內核中,uevent機制是一種內核和用戶空間通信的機制,用于通知用戶空間應用程序各種硬件更改或其他事件,比如插入或移除硬件設備(如USB驅動器或網絡接口)。uevent表示“用戶空間
    的頭像 發表于 09-29 17:01 ?932次閱讀

    linux驅動程序如何加載進內核

    Linux系統中,驅動程序是內核與硬件設備之間的橋梁。它們允許內核與硬件設備進行通信,從而實現對硬件設備的控制和管理。 驅動程序的編寫 驅動程序的編寫是Linux驅動開發的基礎。在編
    的頭像 發表于 08-30 15:02 ?590次閱讀

    基本理想電路元件的三個特征是什么

    基本理想電路元件是構成電路的基本單元,它們具有三個基本特征:電壓-電流關系、能量轉換和電路參數。以下是對這三個特征的分析: 電壓-電流關系 理想電路元件的電壓-電流關系是其最基本的特征之一。這種關系
    的頭像 發表于 08-25 09:38 ?1372次閱讀

    Linux內核測試技術

    Linux 內核Linux操作系統的核心部分,負責管理硬件資源和提供系統調用接口。隨著 Linux 內核的不斷發展和更新,其復雜性和代碼規
    的頭像 發表于 08-13 13:42 ?583次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內核</b>測試技術

    對稱相電壓的特點是哪三個方面

    對稱相電壓是電力系統中常見的一種電壓形式,它具有三個相位,每個相位之間的相位差為120度。對稱相電壓在工業生產和日常生活中有著廣泛的應用,如電動機、變壓器、發電機等。本文將從
    的頭像 發表于 08-12 18:18 ?1804次閱讀

    Linux內核中的頁面分配機制

    Linux內核中是如何分配出頁面的,如果我們站在CPU的角度去看這個問題,CPU能分配出來的頁面是以物理頁面為單位的。也就是我們計算機中常講的分頁機制。本文就看下Linux內核是如何管
    的頭像 發表于 08-07 15:51 ?351次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內核</b>中的頁面分配機制

    簡述極管的三個工作區域

    極管的三個區域,通常指的是其在不同工作條件下的狀態區域,即截止區、放大區和飽和區。這三個區域定義了極管在不同電壓和電流條件下的行為特性,對于理解和設計電子電路至關重要。
    的頭像 發表于 07-29 10:50 ?4159次閱讀

    可調變阻器三個引腳怎么區分

    可調變阻器,也稱為電位器或可變電阻器,是一種可以調節電阻值的電子元件。它廣泛應用于各種電子設備中,如音頻設備、電源管理、電機控制等。可調變阻器有三個引腳,分別是固定端、滑動端和可調端。這三個引腳
    的頭像 發表于 07-24 11:12 ?1491次閱讀

    歡創播報 華為宣布鴻蒙內核已超越Linux內核

    1 華為宣布鴻蒙內核已超越Linux內核 ? 6月21日,在華為開發者大會上, HarmonyOS NEXT(鴻蒙NEXT)——真正獨立于安卓和iOS的鴻蒙操作系統,正式登場。這是HarmonyOS
    的頭像 發表于 06-27 11:30 ?903次閱讀

    微波測量的三個基本參量是什么

    微波測量是電子工程領域中的一重要分支,它涉及到對微波信號的頻率、幅度、相位等參數的測量。在微波測量中,有三個基本參量:頻率、幅度和相位。這三個參量是微波信號的基本特征,對于微波系統的設計、調試
    的頭像 發表于 05-28 14:46 ?1542次閱讀

    如何判斷極管的三個極性

    極管是電子電路中的基本元件之一,其性能的好壞直接影響到整個電路的性能。而判斷極管的三個極性(基極b、發射極e、集電極c)是電路分析和設計中不可或缺的一步。下面將詳細介紹判斷極管
    的頭像 發表于 05-21 15:26 ?7032次閱讀

    籬笆三個樁——記晶體極管的發明

    籬笆三個樁——記晶體極管的發明
    的頭像 發表于 05-12 08:14 ?878次閱讀
    一<b class='flag-5'>個</b>籬笆<b class='flag-5'>三個</b>樁——記晶體<b class='flag-5'>三</b>極管的發明

    使用 PREEMPT_RT 在 Ubuntu 中構建實時 Linux 內核

    的實時內核補丁來完成。簡介我們曾介紹過在Ubuntu22.04中啟用實時Linux內核有多簡單,因為Canonical已將該內核列為一選項
    的頭像 發表于 04-12 08:36 ?2744次閱讀
    使用 PREEMPT_RT 在 Ubuntu 中構建實時 <b class='flag-5'>Linux</b> <b class='flag-5'>內核</b>
    在线百家乐官网| 大发888娱乐城都有啥扑克牌游戏 大发888大发888娱乐城 | 幸运水果机小游戏| 榆次百家乐官网的玩法技巧和规则 | 百家乐官网分析资料| 百家乐稳赢投资法| 百家乐官网龙虎玩| 开心8| 百家乐中的小路怎样| 中国百家乐官网软件| 澳门赌场图片| 逍遥坊百家乐的玩法技巧和规则| 百家乐官网押注最高是多少| 四海资迅| 百家乐羸钱法| 百家乐官网龙虎玩| 鼎龙国际娱乐城| 菲律宾百家乐赌场娱乐网规则| 香港百家乐官网赌城| 武隆县| 网络百家乐会输钱的多吗| 百家乐官网唯一能长期赢钱的方法 | 大发888好吗| 百家乐娱乐城博彩正网| 现场百家乐官网电话投注| 娱乐城彩金| 百家乐游戏解码器| 百家乐官网贴士介绍| 德州扑克 下载| 张家港百家乐赌博| 百家乐官网五湖四海娱乐场开户注册| 太阳城在线娱乐网| 全讯网六| 缅甸百家乐娱乐| 聚众玩百家乐官网的玩法技巧和规则 | 百家乐官网网投开户| 沁阳市| 澳门百家乐官网自杀| 百家乐官网电子作弊器| 玩百家乐官网新太阳城| 百家乐官网赌场赌场网站|