ホームディレクトリの ls が非常に遅い

ホームディレクトリの ls が非常に遅い

少し前に、ホームディレクトリに誤って数十万のファイルを作成し、その後削除してしまいました。

しかし、それ以来、ホーム ディレクトリで ls を実行すると、非常に遅くなりました (印刷に数十秒かかります)。他のディレクトリでも遅くなりました (印刷に 1 秒かかります)。また、タブ補完もどこでも遅くなりました (これも数十秒かかります)。

何が問題なのでしょうか?

編集:コメントで示唆されているように、

~/ -maxdepth 1 | wc を見つける

67であり、df -hの出力は

/dev/sda2        74G  8.4G   62G  12% / 
none            4.0K     0  4.0K   0% /sys/fs/cgroup 
udev            3.9G   12K  3.9G   1% /dev 
tmpfs           795M  1.1M  794M   1% /run 
none            5.0M     0  5.0M   0% /run/lock 
none            3.9G  4.9M  3.9G   1% /run/shm 
none            100M   52K  100M   1% /run/user
/dev/sda1       825G  408G  376G  53% /home
AFS             8.6G     0  8.6G   0% /afs
/dev/sdb2       1.9T  584G  1.3T  32% /media/sj1/ResearchData1 
/dev/sdc1       932G  409G  524G  44% /media/sj1/ResearchData2 

答え1

私も同じ問題を抱えていましたが、その理由はネットワーク ドライブ フォルダーへのリンクが機能しなくなっていたためです。

これがあなたに当てはまるかどうかを確認するには、次のリンクのリストを取得してください:

find . -maxdepth 1 -type l -ls

lsそれぞれ試してください。壊れたものはロックされるlsので、Ctrl + C を押して中止します。

削除するとrmすべてが即座に読み込みを開始します。

答え2

ls -1 -f /directory ディレクトリ内に膨大な数のファイルがある場合に試してください。

  • -1ファイル名を 1 行に 1 つずつリストします。
  • -fソートを無効にします。

答え3

数十万のファイルを作成すると、ファイルが削除されても必ずしも削除されないファイルシステムのエクステントが多数作成される可能性があります。次の方法で「断片化スコア」を取得します。

sudo e4defrag -c ~/

スコアが悪い場合(たとえば 50 を超える場合)は、同じコマンドを '-c' フラグなしで使用してファイルシステムをデフラグします。

答え4

ほとんどのファイルシステムは、削除後にディレクトリを圧縮しません。私にとってうまくいったのは、これに対する答えです。古い質問:

  • 新しいフォルダを作成する
  • 既存のファイルとフォルダを新しいフォルダにコピーする
  • 遅いフォルダを削除する
  • 新しいフォルダ名を古いフォルダ名に変更します

関連情報