Ich habe Proxmox bei mir schon länger auf zwei verschiedenen Servern im Einsatz.
Aktuell habe ich ein Problem, welchem ich nach längerer Rechere nicht richtig auf die Spur komme.
Habe hier einen etwas älternen HP Server ML110-G7 mit einem 4x Intel Xeon 3,1GHz und 32GB Ram. Gebootet wird von einer internen SD-Card mit GRUB.
![1655455417922.png 1655455417922.png](https://forum.proxmox.com/data/attachments/37/37791-0cc94f41676b25d676f97fe1c1e21d44.jpg?hash=DMlPQWdrJd)
Als Speicher habe ich aktuell:
Hier die jeweiligen ZFS Konfigurationen:
Hier der ZFS Status:
Ich habe zum Testen alle Container und VMs gesoppt.
Mein Problem tritt auf, wenn ich ein CT Volume oder ein VM Image von rpool nach tank verschieben möchte.
Anfangs ist die Performance sehr gut. Jedoch nach einiger Zeit bricht sie ein und der IO-delay springt in die Höhe.
![1655459392893.png 1655459392893.png](https://forum.proxmox.com/data/attachments/37/37796-9a46eb2b76bf11a8fb5f7e57ac2464e9.jpg?hash=mkbrK3a_Ea)
Diese 3,2GB wurden innerhalb von wenigen Sekunden transferiert, danach bricht die Performance ein und es dauert Stunden für ein weiteres GB.
Hier der Output von iotop innerhalb der ersten Sekunden bis die 3,2 GB übertragen sind:
Kurz darauf sieht man, dass die Performance einbricht:
Ich habe den Transfer dann abgebrochen.
Interessant ist es auch, dass nachdem ich den Transfer abbreche, es oft Stunden dauert bis der IO-delay wieder sinkt und sich bei nahezu 0 einpendelt. Als würde tank einige Zeit brauchen um sich zu "erholen" und weiter Daten schreibt.
Hier parallel iostat von tank. Hier sieht man, dass die write-bandwith vor dem Transfer 0 anzeigt und dann ansteigt und auch gleich wie das IO-delay oft erst nach Stunden wieder auf 0 steht.
![1655459900423.png 1655459900423.png](https://forum.proxmox.com/data/attachments/37/37799-4c58a46753ec4647aaa8c456bf1503ea.jpg?hash=TFikZ1PsRk)
Eventuell hat dieser Prozess was damit zu tun:
![1655460253131.png 1655460253131.png](https://forum.proxmox.com/data/attachments/37/37800-c2c66e9df8d667f4ed77b405534a0037.jpg?hash=wsZunfjWZ_)
Ich habe dann verschiedene Performance Tests mit großen Files gemacht. Alle zeigen eine sehr hohe Geschwindigkeit.
64GB File auf tank schreiben:
64GB File von rpool auf tank mit rsync übertragen:
Ich habe danach einen weiteren Performance Test gemacht. Nämlich einen ZFS-Pool eines Containers mit rsync von rpool auf tank übertragen.
200GB mit vielen kleinen und auch größeren Files.
Ich hoffe es kann mir hier jemand weiterhelfen.
Liebe Grüße
Max
Auch dort ist das schlechte verhalten zu sehen.
NACHTRAG:
Im Syslog ist mir noch folgendes aufgefallen (deadman):
PS: Seit dem Erstellen des Beitrages vor 30 Minuten ist der IO-delay immer noch nicht zurückgegangen obwohl ich den Transfer abgebrochen habe und keine VM und kein Container läuft.
Aktuell habe ich ein Problem, welchem ich nach längerer Rechere nicht richtig auf die Spur komme.
Habe hier einen etwas älternen HP Server ML110-G7 mit einem 4x Intel Xeon 3,1GHz und 32GB Ram. Gebootet wird von einer internen SD-Card mit GRUB.
![1655455417922.png 1655455417922.png](https://forum.proxmox.com/data/attachments/37/37791-0cc94f41676b25d676f97fe1c1e21d44.jpg?hash=DMlPQWdrJd)
Als Speicher habe ich aktuell:
- rpool: 1x Crucial P1 1TB CT1000P1SSD8 (ZFS ashift=12)
- tank: 4x Seagate ST8000VN004/0022 8TB (ZFS raidz1 ashift=12)
Hier die jeweiligen ZFS Konfigurationen:
Code:
root@proxmox-02:/tank/testdest# zpool get all rpool
NAME PROPERTY VALUE SOURCE
rpool size 928G -
rpool capacity 54% -
rpool altroot - default
rpool health ONLINE -
rpool guid 17297666548505924739 -
rpool version - default
rpool bootfs rpool/ROOT/pve-1 local
rpool delegation on default
rpool autoreplace off default
rpool cachefile - default
rpool failmode wait default
rpool listsnapshots off default
rpool autoexpand off default
rpool dedupratio 1.00x -
rpool free 421G -
rpool allocated 507G -
rpool readonly off -
rpool ashift 12 local
rpool comment - default
rpool expandsize - -
rpool freeing 0 -
rpool fragmentation 21% -
rpool leaked 0 -
rpool multihost off default
rpool checkpoint - -
rpool load_guid 11150836584200506346 -
rpool autotrim off default
rpool compatibility off default
rpool feature@async_destroy enabled local
rpool feature@empty_bpobj active local
rpool feature@lz4_compress active local
rpool feature@multi_vdev_crash_dump enabled local
rpool feature@spacemap_histogram active local
rpool feature@enabled_txg active local
rpool feature@hole_birth active local
rpool feature@extensible_dataset active local
rpool feature@embedded_data active local
rpool feature@bookmarks enabled local
rpool feature@filesystem_limits enabled local
rpool feature@large_blocks enabled local
rpool feature@large_dnode enabled local
rpool feature@sha512 enabled local
rpool feature@skein enabled local
rpool feature@edonr enabled local
rpool feature@userobj_accounting active local
rpool feature@encryption enabled local
rpool feature@project_quota active local
rpool feature@device_removal enabled local
rpool feature@obsolete_counts enabled local
rpool feature@zpool_checkpoint enabled local
rpool feature@spacemap_v2 active local
rpool feature@allocation_classes enabled local
rpool feature@resilver_defer enabled local
rpool feature@bookmark_v2 enabled local
rpool feature@redaction_bookmarks enabled local
rpool feature@redacted_datasets enabled local
rpool feature@bookmark_written enabled local
rpool feature@log_spacemap active local
rpool feature@livelist enabled local
rpool feature@device_rebuild enabled local
rpool feature@zstd_compress enabled local
rpool feature@draid disabled local
Code:
root@proxmox-02:/tank/testdest# zpool get all tank
NAME PROPERTY VALUE SOURCE
tank size 29.1T -
tank capacity 53% -
tank altroot - default
tank health ONLINE -
tank guid 9830700390088837699 -
tank version - default
tank bootfs - default
tank delegation on default
tank autoreplace off default
tank cachefile - default
tank failmode wait default
tank listsnapshots off default
tank autoexpand off default
tank dedupratio 1.00x -
tank free 13.7T -
tank allocated 15.5T -
tank readonly off -
tank ashift 12 local
tank comment - default
tank expandsize - -
tank freeing 0 -
tank fragmentation 0% -
tank leaked 0 -
tank multihost off default
tank checkpoint - -
tank load_guid 5255683199477080109 -
tank autotrim off default
tank compatibility off default
tank feature@async_destroy enabled local
tank feature@empty_bpobj active local
tank feature@lz4_compress active local
tank feature@multi_vdev_crash_dump enabled local
tank feature@spacemap_histogram active local
tank feature@enabled_txg active local
tank feature@hole_birth active local
tank feature@extensible_dataset active local
tank feature@embedded_data active local
tank feature@bookmarks enabled local
tank feature@filesystem_limits enabled local
tank feature@large_blocks enabled local
tank feature@large_dnode enabled local
tank feature@sha512 enabled local
tank feature@skein enabled local
tank feature@edonr enabled local
tank feature@userobj_accounting active local
tank feature@encryption enabled local
tank feature@project_quota active local
tank feature@device_removal enabled local
tank feature@obsolete_counts enabled local
tank feature@zpool_checkpoint enabled local
tank feature@spacemap_v2 active local
tank feature@allocation_classes enabled local
tank feature@resilver_defer enabled local
tank feature@bookmark_v2 enabled local
tank feature@redaction_bookmarks enabled local
tank feature@redacted_datasets enabled local
tank feature@bookmark_written enabled local
tank feature@log_spacemap active local
tank feature@livelist enabled local
tank feature@device_rebuild enabled local
tank feature@zstd_compress enabled local
tank feature@draid enabled local
Hier der ZFS Status:
Code:
root@proxmox-02:/tank/testdest# zpool status
pool: rpool
state: ONLINE
scan: scrub repaired 0B in 00:24:11 with 0 errors on Sun Jun 12 00:48:12 2022
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
nvme-CT1000P1SSD8_20512C5F4262-part3 ONLINE 0 0 0
errors: No known data errors
pool: tank
state: ONLINE
scan: scrub repaired 0B in 07:34:09 with 0 errors on Sun Jun 12 07:58:12 2022
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-ST8000VN0022-2EL112_ZA18QMBJ ONLINE 0 0 0
ata-ST8000VN0022-2EL112_ZA17VQ5Y ONLINE 0 0 0
ata-ST8000VN004-2M2101_WKD14QN3 ONLINE 0 0 0
ata-ST8000VN004-2M2101_WSD1NNL6 ONLINE 0 0 0
errors: No known data errors
Ich habe zum Testen alle Container und VMs gesoppt.
Mein Problem tritt auf, wenn ich ein CT Volume oder ein VM Image von rpool nach tank verschieben möchte.
Anfangs ist die Performance sehr gut. Jedoch nach einiger Zeit bricht sie ein und der IO-delay springt in die Höhe.
![1655459392893.png 1655459392893.png](https://forum.proxmox.com/data/attachments/37/37796-9a46eb2b76bf11a8fb5f7e57ac2464e9.jpg?hash=mkbrK3a_Ea)
Diese 3,2GB wurden innerhalb von wenigen Sekunden transferiert, danach bricht die Performance ein und es dauert Stunden für ein weiteres GB.
Hier der Output von iotop innerhalb der ersten Sekunden bis die 3,2 GB übertragen sind:
Code:
Total DISK READ: 988.79 M/s | Total DISK WRITE: 764.84 M/s
Current DISK READ: 806.08 M/s | Current DISK WRITE: 412.72 M/s
Kurz darauf sieht man, dass die Performance einbricht:
Code:
Total DISK READ: 178.04 K/s | Total DISK WRITE: 24.16 K/s
Current DISK READ: 0.00 B/s | Current DISK WRITE: 421.39 K/s
Ich habe den Transfer dann abgebrochen.
Interessant ist es auch, dass nachdem ich den Transfer abbreche, es oft Stunden dauert bis der IO-delay wieder sinkt und sich bei nahezu 0 einpendelt. Als würde tank einige Zeit brauchen um sich zu "erholen" und weiter Daten schreibt.
Hier parallel iostat von tank. Hier sieht man, dass die write-bandwith vor dem Transfer 0 anzeigt und dann ansteigt und auch gleich wie das IO-delay oft erst nach Stunden wieder auf 0 steht.
Code:
root@proxmox-02:~# zpool iostat tank 1
capacity operations bandwidth
pool alloc free read write read write
---------- ----- ----- ----- ----- ----- -----
tank 15.5T 13.7T 0 0 0 0
tank 15.5T 13.7T 0 0 0 0
tank 15.5T 13.7T 0 0 0 0
tank 15.5T 13.7T 0 0 0 0
tank 15.5T 13.7T 1 18 7.98K 75.8K
tank 15.5T 13.7T 0 113 0 894K
tank 15.5T 13.7T 0 94 0 626K
tank 15.5T 13.7T 0 12 0 51.9K
tank 15.5T 13.7T 0 0 0 0
tank 15.5T 13.7T 0 23 0 95.9K
tank 15.5T 13.7T 0 123 0 495K
tank 15.5T 13.7T 0 112 0 451K
tank 15.5T 13.7T 0 112 0 451K
tank 15.5T 13.7T 0 115 0 463K
tank 15.5T 13.7T 0 127 0 511K
.......
.......
.......
![1655459900423.png 1655459900423.png](https://forum.proxmox.com/data/attachments/37/37799-4c58a46753ec4647aaa8c456bf1503ea.jpg?hash=TFikZ1PsRk)
Eventuell hat dieser Prozess was damit zu tun:
![1655460253131.png 1655460253131.png](https://forum.proxmox.com/data/attachments/37/37800-c2c66e9df8d667f4ed77b405534a0037.jpg?hash=wsZunfjWZ_)
Ich habe dann verschiedene Performance Tests mit großen Files gemacht. Alle zeigen eine sehr hohe Geschwindigkeit.
64GB File auf tank schreiben:
Code:
root@proxmox-02:/tank# dd if=/dev/zero of=/tank/test1.img bs=1GB count=64 oflag=dsync
64+0 records in
64+0 records out
64000000000 bytes (64 GB, 60 GiB) copied, 89.7949 s, 713 MB/s
root@proxmox-02:/tank#
64GB File von rpool auf tank mit rsync übertragen:
Code:
root@proxmox-02:/rpool# rsync --progress test1.img /tank/test1.img
test1.img
64,000,000,000 100% 947.99MB/s 0:01:04 (xfr#1, to-chk=0/1)
Ich habe danach einen weiteren Performance Test gemacht. Nämlich einen ZFS-Pool eines Containers mit rsync von rpool auf tank übertragen.
200GB mit vielen kleinen und auch größeren Files.
Ich hoffe es kann mir hier jemand weiterhelfen.
Liebe Grüße
Max
Auch dort ist das schlechte verhalten zu sehen.
NACHTRAG:
Im Syslog ist mir noch folgendes aufgefallen (deadman):
Code:
Jun 17 12:38:49 proxmox-02 zed[89435]: eid=217 class=deadman pool='tank' vdev=ata-ST8000VN0022-2EL112_ZA18QMBJ-part1 size=4096 offset=6693394821120 priority=3 err=0 flags=0x180880 delay=3613193ms bookmark=1170:1:0:128265
Jun 17 12:38:49 proxmox-02 zed[89437]: eid=218 class=deadman pool='tank' vdev=ata-ST8000VN004-2M2101_WKD14QN3-part1 size=4096 offset=6693394817024 priority=3 err=0 flags=0x180880 delay=3613160ms bookmark=1170:1:0:128264
Jun 17 12:38:49 proxmox-02 zed[89439]: eid=219 class=deadman pool='tank' vdev=ata-ST8000VN0022-2EL112_ZA18QMBJ-part1 size=4096 offset=6693394817024 priority=3 err=0 flags=0x180880 delay=3613160ms bookmark=1170:1:0:128263
Jun 17 12:38:49 proxmox-02 zed[89441]: eid=221 class=deadman pool='tank' vdev=ata-ST8000VN0022-2EL112_ZA18QMBJ-part1 size=4096 offset=6693394812928 priority=3 err=0 flags=0x180880 delay=3613127ms bookmark=1170:1:0:128261
Jun 17 12:38:49 proxmox-02 zed[89443]: eid=220 class=deadman pool='tank' vdev=ata-ST8000VN004-2M2101_WKD14QN3-part1 size=4096 offset=6693394812928 priority=3 err=0 flags=0x180880 delay=3613127ms bookmark=1170:1:0:12826
PS: Seit dem Erstellen des Beitrages vor 30 Minuten ist der IO-delay immer noch nicht zurückgegangen obwohl ich den Transfer abgebrochen habe und keine VM und kein Container läuft.
Last edited: