亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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)有沒(méi)有什么機(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)開(kā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)看,很好理解,在開(kā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常見(jiàn)鎖和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

    文章

    11583

    瀏覽量

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

    關(guān)注

    30

    文章

    4928

    瀏覽量

    72706
  • Watchdog
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    9694

原文標(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)推薦

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

    本文基于觸覺(jué)智能RK3506核心板/開(kāi)發(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 ?718次閱讀
    RK3506開(kāi)發(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í)

    Linux內(nèi)核參數(shù)調(diào)優(yōu)方案

    在高并發(fā)微服務(wù)環(huán)境中,網(wǎng)絡(luò)性能往往成為K8s集群的瓶頸。本文將深入探討如何通過(guò)精細(xì)化的Linux內(nèi)核參數(shù)調(diào)優(yōu),讓你的K8s節(jié)點(diǎn)網(wǎng)絡(luò)性能提升30%以上。
    的頭像 發(fā)表于 08-06 17:50 ?604次閱讀

    怎么結(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 ?563次閱讀
    怎么結(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 ?706次閱讀

    樹(shù)莓派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 ?600次閱讀
    樹(shù)莓派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次下載

    獲取具有三個(gè)輸出的自定義模型的輸出張量,運(yùn)行時(shí)錯(cuò)誤是怎么回事?

    獲取具有三個(gè)輸出的自定義模型的輸出張量: 從 openvino.runtime 導(dǎo)入內(nèi)核 內(nèi)核 = 內(nèi)核() model = core.read_model(model=“model.
    發(fā)表于 03-05 09:44

    Linux系統(tǒng)中最重要的三個(gè)命令

    Linux劍客是Linux系統(tǒng)中最重要的三個(gè)命令,它們以其強(qiáng)大的功能和廣泛的應(yīng)用場(chǎng)景而聞名。這三個(gè)工具的組合使用幾乎可以完美應(yīng)對(duì)Shell
    的頭像 發(fā)表于 03-03 10:37 ?692次閱讀

    使用DDS生成三個(gè)信號(hào)并在Vivado中實(shí)現(xiàn)低通濾波器

    本文使用 DDS 生成三個(gè)信號(hào),并在 Vivado 中實(shí)現(xiàn)低通濾波器。低通濾波器將濾除相關(guān)信號(hào)。
    的頭像 發(fā)表于 03-01 14:31 ?2294次閱讀
    使用DDS生成<b class='flag-5'>三個(gè)</b>信號(hào)并在Vivado中實(shí)現(xiàn)低通濾波器

    騰訊云內(nèi)核團(tuán)隊(duì)修復(fù)Linux關(guān)鍵Bug

    騰訊云操作系統(tǒng)(Tencent OS)內(nèi)核團(tuán)隊(duì)近日在Linux社區(qū)取得了顯著成果。他們提交的兩項(xiàng)改進(jìn)方案,成功解決了自2021年以來(lái)一直困擾眾多一線廠商,并在近期讓多個(gè)Linux頂級(jí)
    的頭像 發(fā)表于 12-31 10:58 ?860次閱讀

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-Linux內(nèi)核移植之內(nèi)核簡(jiǎn)介

    學(xué)到本章節(jié),大家應(yīng)該對(duì)Linux操作系統(tǒng)都有了一定的了解,但可能還不知道我們拿到手的內(nèi)核源碼都經(jīng)歷了什么。linux有一個(gè)龐大的開(kāi)源社區(qū),每個(gè)人都可以向開(kāi)源社區(qū)提交代碼。由于
    發(fā)表于 12-16 13:08

    飛凌嵌入式ElfBoard ELF 1板卡-Linux內(nèi)核移植之內(nèi)核簡(jiǎn)介

    學(xué)到本章節(jié),大家應(yīng)該對(duì)Linux操作系統(tǒng)都有了一定的了解,但可能還不知道我們拿到手的內(nèi)核源碼都經(jīng)歷了什么。linux有一個(gè)龐大的開(kāi)源社區(qū),每個(gè)人都可以向開(kāi)源社區(qū)提交代碼。由于
    發(fā)表于 12-13 09:03

    動(dòng)態(tài)無(wú)功補(bǔ)償?shù)?b class='flag-5'>三個(gè)必要條件

    重要性愈發(fā)凸顯。本文將探討動(dòng)態(tài)無(wú)功補(bǔ)償?shù)?b class='flag-5'>三個(gè)關(guān)鍵條件,以幫助電力系統(tǒng)運(yùn)營(yíng)者更好地應(yīng)對(duì)復(fù)雜的電力需求和供給問(wèn)題。 動(dòng)態(tài)無(wú)功補(bǔ)償?shù)?b class='flag-5'>三個(gè)必要條件包括: 實(shí)時(shí)監(jiān)測(cè)電網(wǎng)功率因數(shù)和電壓波動(dòng) :動(dòng)態(tài)無(wú)功補(bǔ)償系統(tǒng)應(yīng)具備實(shí)時(shí)監(jiān)
    的頭像 發(fā)表于 11-12 14:05 ?891次閱讀
    動(dòng)態(tài)無(wú)功補(bǔ)償?shù)?b class='flag-5'>三個(gè)</b>必要條件