一部のディレクトリに対してコマンドを実行すると、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」です。ext4
lvm2
LUKS
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