Io
dm_crypt / kworker 佔用 IO 並導致系統凍結
我不確定如何調試它,但我注意到如果我正在執行需要大量磁碟讀取/寫入的任務(例如更新大型 postgres 表),定期實際讀取和寫入將下降到 0而 dm_crypt 在 iotop 中顯示 99.9% 的 IO 使用率。
最重要的是,隨著多個 kworker 執行緒的產生,整個 DE 將不時凍結。滑鼠繼續工作並且可以移動,但在 30-60 秒左右沒有其他視窗響應。
CPU 一直處於低使用率狀態,並且凍結與 iotop 中出現的多個 kworker 執行緒相吻合。
這是凍結期間的系統日誌輸出
Oct 22 11:09:47 pop-os /usr/lib/gdm3/gdm-x-session[3348]: (EE) client bug: timer event5 debounce: scheduled expiry is in the past (-6ms), your system is too slow Oct 22 11:09:47 pop-os /usr/lib/gdm3/gdm-x-session[3348]: (EE) client bug: timer event5 debounce short: scheduled expiry is in the past (-19ms), your system is too slow Oct 22 11:10:12 pop-os gjs[184224]: JS ERROR: Gio.IOErrorEnum: Timeout was reached _proxyInvoker@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:139:46 _makeProxyMethod/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:164:30 makeAreaScreenshot@/home/anthony/.local/share/gnome-shell/extensions/gnome-shell-screenshot@ttll.de/auxhelper.js:78:33 main/<@/home/anthony/.local/share/gnome-shell/extensions/gnome-shell-screenshot@ttll.de/auxhelper.js:190:21 main@/home/anthony/.local/share/gnome-shell/extensions/gnome-shell-screenshot@ttll.de/auxhelper.js:204:30 @/home/anthony/.local/share/gnome-shell/extensions/gnome-shell-screenshot@ttll.de/auxhelper.js:216:3 Oct 22 11:10:36 pop-os gnome-shell[3610]: JS ERROR: Error: cmd: gjs /home/anthony/.local/share/gnome-shell/extensions/gnome-shell-screenshot@ttll.de/auxhelper.js --filename /tmp/gnome-shell-screenshot-ZPGAT0.png --area 3640,809,948,419 exitCode=256 callHelper/<@/home/anthony/.local/share/gnome-shell/extensions/gnome-shell-screenshot@ttll.de/selection.js:87:16 Oct 22 11:10:50 pop-os gnome-shell[3610]: ../clutter/clutter/clutter-actor.c:10558: The clutter_actor_set_allocation() function can only be called from within the implementation of the ClutterActor::allocate() virtual function.
postgres 數據庫儲存在與作業系統不同的磁碟上,所以我的 DE 在寫入時應該沒有任何理由凍結?有人對我如何進一步調試並找出導致問題的原因有任何建議嗎?
流行音樂 20.04
5.4.0-7634-通用
為了解決這個問題,我必須編輯 vm.dirty_ratio 和 vm.dirty_background_ratio。問題是我寫入磁碟的速度超過了磁碟可以處理的速度,並且每當記憶體被填滿時系統就會凍結。