質問:Ubuntuで端末に入力すると、入力した文字が表示されるまで数秒かかります。
私は大量のデータを/etc/fstab
自動マウントされた他のLUKS暗号化ドライブに移動した後に初めてこれを発見しました。端末に入力すると(私はデフォルトのbashを使用しています)、応答速度は非常に遅くなります。最初は余分なハードに問題があると思いました。他のオペレーティングシステムには問題がないため、ハードウェアの問題ではないようです(Samsung 990 Proのデュアルブート)。
詳細:
- Ubuntu 22.04.4 LTSの新規インストール、Samsung 870 QVO 4TB Sata 6Gb / sでLUKSを使用したフルディスク暗号化
- Samsung 990 Pro 4TB M.2 vMVE(暗号化されていない2TBパーティション)でも再現可能
- 4x8GB RAM @2133MT/s、最小15GBの空き容量。
- CPU: i7-6700K、8コアすべて< 10%使用量
私は努力しました:
fs.inotify.max_user_watches
デフォルトの65536と高い値の1048576の間の値に設定します。- 複数の再起動
- バッシュレコードを消去
- すべてのデバイスを削除
- FSの速度を低下させる可能性のあるすべてのプログラム(PhpStorm、GitKrakenなど)を閉じます。
私が確認した内容は次のとおりです。
/var/log/dmesg
/var/log/syslog
/var/log/kern.log
遅い処理をデバッグする方法を見つけて使用しましたstrace -T -f -s9999 -p6673
。上矢印を2回押したときの出力は次のとおりです。
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <1.867761>
read(0, "\33", 1) = 1 <0.000091>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <0.000008>
read(0, "[", 1) = 1 <0.000007>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <0.000007>
read(0, "A", 1) = 1 <0.000007>
write(2, "echo $$", 7) = 7 <0.000009>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <0.660089>
read(0, "\33", 1) = 1 <0.000024>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <0.000062>
read(0, "[", 1) = 1 <0.000040>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <0.000007>
read(0, "A", 1) = 1 <0.000007>
write(2, "\10\10\10\10\10\10\10cat /proc/sys/fs/inotify/max_user_watches", 48) = 48 <0.000008>
私を混乱させるのは最初のpselect6
呼び出し、実行時間が1秒を超えています。。これは間違いなく犯人ですが、ここで問題をデバッグする方法がわかりません。
空白のみを入力する別のstraceは次のとおりです。
strace: Process 6673 attached
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <2.216155>
read(0, " ", 1) = 1 <0.000015>
pselect6(1, [0], NULL, [0], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) <0.000075>
write(2, " ", 1) = 1 <0.000042>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <0.923598>
read(0, " ", 1) = 1 <0.000017>
pselect6(1, [0], NULL, [0], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) <0.000011>
write(2, " ", 1) = 1 <0.000012>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <1.504578>
read(0, " ", 1) = 1 <0.000016>
pselect6(1, [0], NULL, [0], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) <0.000012>
write(2, " ", 1) = 1 <0.000008>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <1.783754>
read(0, " ", 1) = 1 <0.000016>
pselect6(1, [0], NULL, [0], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) <0.000013>
write(2, " ", 1) = 1 <0.000009>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}) = 1 (in [0]) <1.664852>
read(0, " ", 1) = 1 <0.000015>
pselect6(1, [0], NULL, [0], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout) <0.000078>
write(2, " ", 1) = 1 <0.000009>
pselect6(1, [0], NULL, NULL, NULL, {sigmask=[], sigsetsize=8}strace: Process 6673 detached
<detached ...>
時々pselect6
2.2秒ほど遅く、時には速いです。
答え1
@muruが指摘したように、askubuntuには重複があります。https://askubuntu.com/questions/1509058/input-delay-on-terminal-ubuntu-22-04-4
xserver-common xserver-xephyr xserver-xorg-legacy xserver-xorg-core xwayland
問題は解決されませんでしたが、4月10日にリリースされたパッケージをアップグレードすることで改善されました。apt update && apt upgrade
このパッケージでは、このバグに関する内容が修正されたようです。しかし、問題は完全に解決されていませんでした
Mutterを開発版にアップグレードすることを提案する答えをテストしました。https://askubuntu.com/a/1509474/1341824 これは問題を解決し、PhpStormでのちらつきなどの視覚的なバグも削除しました。