私はDebianとKDEでテストしていますが、Dolpin(21.08.2)でディレクトリを切り替えるたびに遅延が発生しました。どのディレクトリに切り替えても、常にほぼ同じようです(ほぼ1秒)。これが私の設定で発生したことを確認するために新しいユーザーを作成しましたが、同じことが起こりました。
htopでは、DolphinがI / O(プロセスステータス「D」)を待っていることを示したので、待つstrace -e openat dolphin
たびに同様の出力が8回ほど繰り返されるのを見ました。
openat(AT_FDCWD, "/run/blkid/blkid.tab", O_RDONLY|O_CLOEXEC) = 23
openat(AT_FDCWD, "/proc/evms/volumes", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/proc/lvm/VGs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/dev", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 23
openat(AT_FDCWD, "/devfs", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/devices", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/sys/block", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 23
openat(AT_FDCWD, "/sys/block/nvme0n1/dev", O_RDONLY|O_CLOEXEC) = 25
openat(AT_FDCWD, "/sys/dev/block/259:0", O_RDONLY|O_CLOEXEC) = 25
openat(25, "size", O_RDONLY|O_CLOEXEC) = 33
openat(25, "removable", O_RDONLY|O_CLOEXEC) = 33
openat(25, "ext_range", O_RDONLY|O_CLOEXEC) = 33
openat(25, "nvme0n1p3/size", O_RDONLY|O_CLOEXEC) = 34
openat(AT_FDCWD, "/sys/block/nvme0n1/nvme0n1p3/dev", O_RDONLY|O_CLOEXEC) = 34
openat(25, "nvme0n1p1/size", O_RDONLY|O_CLOEXEC) = 34
openat(AT_FDCWD, "/sys/block/nvme0n1/nvme0n1p1/dev", O_RDONLY|O_CLOEXEC) = 34
openat(25, "nvme0n1p2/size", O_RDONLY|O_CLOEXEC) = 34
openat(AT_FDCWD, "/sys/block/nvme0n1/nvme0n1p2/dev", O_RDONLY|O_CLOEXEC) = 34
openat(AT_FDCWD, "/sys/block/sr0/dev", O_RDONLY|O_CLOEXEC) = 25
openat(AT_FDCWD, "/sys/dev/block/11:0", O_RDONLY|O_CLOEXEC) = 25
openat(25, "size", O_RDONLY|O_CLOEXEC) = 33
openat(25, "removable", O_RDONLY|O_CLOEXEC) = 33
openat(25, "ext_range", O_RDONLY|O_CLOEXEC) = 33
openat(AT_FDCWD, "/sys/dev/block/11:0", O_RDONLY|O_CLOEXEC) = 34
openat(34, "dm/uuid", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/dev/sr0", O_RDONLY|O_NONBLOCK|O_CLOEXEC) = 34
openat(AT_FDCWD, "/sys/dev/block/11:0", O_RDONLY|O_CLOEXEC) = 35
openat(35, "dm/uuid", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/sys/dev/block/11:0", O_RDONLY|O_CLOEXEC) = 35
openat(35, "dm/uuid", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/sys/block/nvme1n1/dev", O_RDONLY|O_CLOEXEC) = 25
openat(AT_FDCWD, "/sys/dev/block/259:1", O_RDONLY|O_CLOEXEC) = 25
openat(25, "size", O_RDONLY|O_CLOEXEC) = 33
openat(25, "removable", O_RDONLY|O_CLOEXEC) = 33
openat(25, "ext_range", O_RDONLY|O_CLOEXEC) = 33
openat(25, "nvme1n1p1/size", O_RDONLY|O_CLOEXEC) = 34
openat(AT_FDCWD, "/sys/block/nvme1n1/nvme1n1p1/dev", O_RDONLY|O_CLOEXEC) = 34
openat(AT_FDCWD, "/sys/block/sda/dev", O_RDONLY|O_CLOEXEC) = 25
openat(AT_FDCWD, "/sys/dev/block/8:0", O_RDONLY|O_CLOEXEC) = 25
openat(25, "size", O_RDONLY|O_CLOEXEC) = 33
openat(25, "removable", O_RDONLY|O_CLOEXEC) = 33
openat(25, "ext_range", O_RDONLY|O_CLOEXEC) = 33
openat(25, "sda2/size", O_RDONLY|O_CLOEXEC) = 34
openat(AT_FDCWD, "/sys/block/sda/sda2/dev", O_RDONLY|O_CLOEXEC) = 34
openat(25, "sda3/size", O_RDONLY|O_CLOEXEC) = 34
openat(AT_FDCWD, "/sys/block/sda/sda3/dev", O_RDONLY|O_CLOEXEC) = 34
openat(25, "sda1/size", O_RDONLY|O_CLOEXEC) = 34
openat(AT_FDCWD, "/sys/block/sda/sda1/dev", O_RDONLY|O_CLOEXEC) = 34
これは、複数のディスクとパーティションがマウントされているという事実に関連している可能性がありますが、ディレクトリを変更するたびに待機する理由を理解できません。サイドバーで使用されるディスク容量を毎回更新できるかどうか疑問に思います。しかし、サイドバーをすべて隠しても何の変化もありません。
https://bugs.kde.org/show_bug.cgi?id=426672関連している可能性がありますが、実行中のドッカーコンテナがなく、インストール数が多くありません(mount | wc -l
30行表示)。
もう調べたもう1つの事実は、新しいタブでディレクトリを開くことがすぐに可能であることです。したがって、実際に現在のディレクトリを変更するだけでも、このような遅延が発生するようです。
DNS情報:
sudo tcpdump udp port 53 --interface wlp26s0
Dolphinで特定の操作を実行すると、要求は表示されません。strace -e trace=network dolphin
いくつかの行が表示されますが、すべてのディレクトリを変更すると信頼できません。
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\1T\24\0\0\0\0\277\6\0\0\5\213\367\0\314\3\16\2\314\3\16\2\20\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
(英語のメッセージは「リソースを一時的に使用できません」です。)
答え1
このKDEバグレポートは問題を非常に正確に説明しているようです: https://bugs.kde.org/show_bug.cgi?id=442106
/etc/fstab
現在接続されていないデバイス(外部ドライブがある)が入ると発生します。UUID=