一部のディレクトリでは、lsコマンドが遅すぎます。

一部のディレクトリでは、lsコマンドが遅すぎます。

一部のディレクトリに対してコマンドを実行すると、lsディレクトリにいくつかのファイルがあっても完了するのに約1.5秒かかることがありますが、ほとんどのディレクトリでは非常に高速です。長い間アクセスしていないディレクトリの場合は遅いようですが、おそらく関係がないかもしれません。同じディレクトリに対してこのコマンドを繰り返すと、常に非常に高速に実行されます。このコマンドは非常に遅いただマウントポイントにあるディレクトリの場合は、/home同じボリューム上の他のすべてのパーティションに対して高速です。

たとえば、私の~/backupsディレクトリには3つのファイルしか含まれていません。以下は2回実行の出力です。

$ time ls ~/backups
# file list
real    0m1.635s
user    0m0.001s
sys 0m0.000s

$ time ls ~/backups
# file list
real    0m0.001s
user    0m0.001s
sys 0m0.000s

私のファイルはfs/homeでフォーマットされ暗号化されたパーティションで、ボリュームはハードディスク「WDC WD10SPZX-75Z」です。ext4lvm2LUKS

fstab/homeは次のとおりです

/dev/mapper/home /home ext4 defaults,noatime 0 0

私の場合、IOパフォーマンスを向上させることはできますか?

修正する:コマンドだけでなく、lsすべてのio操作、たとえばtouch長い間アクセスしていないディレクトリを変更しようとすると、コマンドも非常に遅くなります。

アップデート2:lsblkドライバ出力sda

NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 931.5G  0 disk
├─HDD-root     254:3    0    32G  0 lvm
├─HDD-var      254:4    0   256G  0 lvm
│ └─var        254:8    0   256G  0 crypt /var
└─HDD-home     254:5    0   512G  0 lvm
  └─home       254:7    0   512G  0 crypt /home

出力findmnt

TARGET                          SOURCE               FSTYPE      OPTIONS
/                               /dev/mapper/root     ext4        rw,relatime,commit=600
├─/proc                         proc                 proc        rw,nosuid,nodev,noexec,relatime
│ └─/proc/sys/fs/binfmt_misc    binfmt_misc          binfmt_misc rw,nosuid,nodev,noexec,relatime
├─/dev                          udev                 devtmpfs    rw,nosuid,relatime,size=10240k,nr_inodes=2013980,mode=755
│ ... (some /dev related mount points)
├─/sys                          sysfs                sysfs       rw,nosuid,nodev,noexec,relatime
│ ... (a lot of /sys and cgroups mount points)
├─/run                          tmpfs                tmpfs       rw,nodev,relatime,size=1612028k,mode=755
│ └─/run/user/1000              none                 tmpfs       rw,relatime,mode=700,uid=1000
├─/home                         /dev/mapper/home     ext4        rw,noatime,commit=600
│ └─/home/projects              /dev/mapper/projects ext4        rw,relatime,discard,commit=600
├─/var                          /dev/mapper/var      ext4        rw,relatime,commit=600
└─/tmp                          tmpfs                tmpfs       rw,nosuid,nodev,noatime,size=4194304k

関連情報