fstrim은 Xen PV dom0에서 잘라낼 바이트를 어떻게 계속 찾나요?

fstrim은 Xen PV dom0에서 잘라낼 바이트를 어떻게 계속 찾나요?

3.10 커널에서 RHEL6을 실행하는 Xen PV 노드가 있습니다. 노드에는 mdadm RAID1과 다음 파티션이 있습니다.

[root@node ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/md1         15G  4.1G  9.9G  30% /
tmpfs           966M     0  966M   0% /dev/shm
/dev/md0        477M   84M  365M  19% /boot
xenstore        966M  184K  966M   1% /var/lib/xenstored

또한 노드에는 SSD 오버 프로비저닝을 위해 할당하지 않은 SSD의 나머지 부분(20GB 미만)을 차지하는 LVM도 있습니다.

fstrim최근에 dom0에서 실행할 때 몇 가지 흥미로운 동작을 발견했습니다. fstrimdom0에서 디스크 활동이 많이 발생하지 않는 경우에도 바이트는 계속해서 잘립니다(야간 백업 제외). domU에서는 많은 디스크 활동이 발생하지만 dom0에서는 거의 발생하지 않습니다.

다음 각 fstrim명령은 약 2분의 지연으로 구분됩니다.

[root@node ~]# fstrim -v /
/: 10452664320 bytes were trimmed
[root@node ~]# fstrim -v /
/boot: 0 bytes were trimmed
[root@node ~]# fstrim -v /
/: 181784576 bytes were trimmed
[root@node ~]# fstrim -v /
/boot: 0 bytes were trimmed
[root@node ~]# fstrim -v /
/: 283222016 bytes were trimmed
[root@node ~]# fstrim -v /
/boot: 0 bytes were trimmed
[root@node ~]# fstrim -v /
/: 334065664 bytes were trimmed

첫 번째 fstrim는 그날 실행된 첫 번째 페이지였으며 예상대로 매일 밤 수행되는 백업과 관련하여 정리가 필요한 약 10GB의 페이지를 발견했습니다. 몇 분 후에 명령을 실행하면 정리할 내용이 남지 않습니다. 그러나 몇 분 더 기다렸다가 다시 정리하면 항상 정리할 항목을 찾습니다. 그다지 중요하지 않은 양의 데이터(예: ~300MB)도 아닙니다.

앞서 언급했듯이 dom0에는 야간 백업 실행 외에는 디스크 활동이 거의 없습니다. domU에는 많은 디스크 활동이 있지만 dom0이 domU 파일 시스템과 관련된 페이지를 정리할 수 있다고는 생각하지 못했습니다.

두 경우 모두 fstrimdom0에서 실행하면 domU의 성능이 크게 향상되고 iowait는 감소합니다.

dom0에 디스크 활동이 거의 없을 때 dom0이 어떻게 수백 MB를 계속 정리할 수 있는지 아는 사람이 있습니까?

관련 정보