日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JDB2导致磁盘io使用率高

發布時間:2023/12/31 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JDB2导致磁盘io使用率高 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? 前幾天碰到jbd2進程占用大量的磁盤io,用iotop查看到的情況大致如下:

系統版本:CentOS6.5-64bit

????經查為ext4文件系統的一個bug:

????先給出解決方案,處理此問題的優先級為:

1、yum update kernel 用yum升級系統內核,重啟之后查看是否有效;

2、緩解方法:修改commit值,降低文件系統提交次數或者禁用barrier特性;

建議文件系統參數為:defaults,noatime,nodiratime,barrier=0,data=writeback,commit=60

(可以通過修改fstab表或者remount重新掛載)

3、慎用方法:關閉文件系統日志功能 ? ? tune2fs -O "^has_journal" 例如:?tune2fs -O "^has_journal"?/dev/mapper/VolGroup-lv_home

-----------------------------------------------------------------------

????通過查資料,整理相關信息,解釋如下;

1、jbd的全拼是journaling block driver 文件系統的日志功能,jbd2是ext4文件系統版本;可以肯定的是對文件系統的操作太頻繁,導致IO壓力過大。

常用的文件系統使用日志功能來保證文件系統的完整性,在寫入新的數據到磁盤之前,會先將元數據寫入日志;這樣做可以保證在寫入真實數據前后,一旦發生錯誤,

日志功能將很容易回滾到之前的狀態,確保不會發生文件系統崩潰的情況;


2、而現在的磁盤上一般都配有內部緩存,以便重新調整批量數據的寫入順序,優化寫入性能,因此文件系統必須在日志數據寫入磁盤之后才能寫commit(commit=xx 每xx秒同步所有的數據和元數據。默認是每5秒)記錄;若commit記錄寫入在先,而日志有可能損壞,就會影響數據完整性;EXT4文件系統默認啟用barrier功能,只有當barrier之前的數據全部寫入磁盤,才能寫barrier之后的數據;barrier的存在保證了數據完整性;


3、使用barrier特性的不利之處在于,需要付出降低性能的代價;可以通過掛載項 mount -o barrier=0來禁用此特性;

? 可通過查看/proc/mounts里的barrier值 為1代表啟用


4、文件的寫和請求會導致其中一個int型的值不斷增大,最后超出了自身范圍---變成負值,就會觸發該bug;

?具體原理參考下鏈接:

http://blog.donghao.org/2013/03/20/%E4%BF%AE%E5%A4%8Dext4%E6%97%A5%E5%BF%97%EF%BC%88jbd2%EF%BC%89bug/


5、所以我們可以通過降低文件系統的提交次數來緩解IO壓力(相關參數commit);或者禁用barrier特性(相關參數barrier=0 );

?而考慮到此bug網上已經有人提出了,貌似當時還有人提供了臨時修復補丁,這么長時間過去之后,官方kernel里也應該做了相應的更新;所以當大家碰到這個問題時,首先的建議是

升級下kernel(升級之前建議做好數據備份),重啟之后查看是否生效!





? ? ? 本文轉自Jx戰壕 ?51CTO博客,原文鏈接:http://blog.51cto.com/xujpxm/1674378,如需轉載請自行聯系原作者




總結

以上是生活随笔為你收集整理的JDB2导致磁盘io使用率高的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。