Extrem LANGSAMER Ceph Storage ab über 60% Auslastung ???

May 18, 2021
25
3
8
41
Wir haben einen "Labor" Ceph Object Storage, welcher aus einem 4x-Multinode-Server und den folgenden Node-Komponenten besteht:

Pro Node:
  1. PVE Manager Version pve-manager/7.1-7/df5740ad
  2. Kernel Version Linux 5.13.19-2-pve #1 SMP PVE 5.13.19-4 (Mon, 29 Nov 2021 12:10:09 +0100)
  3. 24 x Intel(R) Xeon(R) CPU X5675 @ 3.07GHz (2 Sockets)
  4. RAM usage 48.34% (11.37 GiB of 23.51 GiB)
  5. SWAP usage 0.00% (0 B of 1024.00 MiB) - ZRAM
  6. / HD space 0.07% (2.58 GiB of 3.51 TiB) - ZFS (Root)
  7. SATA - 2x 4 TB Ceph OSDs
  8. Ceph Cluster Network - 1 Gbit - 9000 MTU
  9. Proxmox Cluster / Ceph Mon. - 1 Gbit - 1500 MTU
ceph_slow_1.jpg

Der Ceph Cluster besteht aus (2x 4 TB pro Knoten) x4 = insgesamt 8 OSDs mit 32 TB Bruttokapazität.

ceph_slow_2.jpg

ceph_slow_3.jpg

ceph_slow_4.jpg

Der cephfs_data Pool wird mit LZ4 unter aggressiv komprimiert.

ceph_slow_5.jpg

Der Zugriff auf den Ceph Speicher erfolgt ausschließlich über eine "Samba-to-Ceph" VM (Debian 11 basierend) auf einem entfernten Proxmox-Knoten, der den cephfs Pool unter /ceph-data gemountet hat und ihn über Samba (als Active Directory Domain Member) für die Dateiablage als Archivsystem bereitstellt.

root@samba-to-ceph:~# tail -n 6 /etc/fstab
### ### ###

#// Mini-Rack Ceph Object Storage
172.16.100.11:6789,172.16.100.12:6789,172.16.100.13:6789,172.16.100.14:6789:/ /ceph-data ceph name=admin,secret="SECRET",noatime,acl,_netdev 0 2

### ### ###
# EOF
root@samba-to-ceph:~#

Bis zur 60%igen Poolbelegung war der SMB-Zugriff mit durchschnittlich 120-130 MB/s beim Kopieren unter einer Windows Client VM (mittels der Samba-To-Ceph-VM) performant.

Nach dem letzten Scrub scheint die gesamte Ceph-Performance jedoch stark eingebrochen zu sein!

!!!! Die Schreibleistung liegt jetzt im Bereich von 200-300 Kbit/s !!!!

ceph_performance_001.jpg

Der RAM ist komplett ausgelastet (ca. 50% ist CACHED)
Auch der SWAP wird immer voller.

... nach viel Debugging ...

!!!! Um die normale Performance wiederherzustellen, half eine Bereinigung des PageCache und eine SWAP Bereinigung !!!!

root@ceph1-minirack:~#
root@ceph1-minirack:~# sync; echo 1 > /proc/sys/vm/drop_caches
root@ceph1-minirack:~#
root@ceph1-minirack:~# swapoff -a
root@ceph1-minirack:~#
root@ceph1-minirack:~# swapon /dev/zram0 -p 10
root@ceph1-minirack:~#
root@ceph1-minirack:~# free
total used free shared buff/cache available
Mem: 24656724 11893748 12400936 71968 362040 12346804
Swap: 1048572 0 1048572
root@ceph1-minirack:~#

Was wäre eine dauerhafte Lösung für dieses Phänomen?
Welche Parameter im Linux-Kernel? Proxmox? oder Ceph selbst? müssen angepasst werden?
 
Und wieder ist der RAM bist zum Swapping vollgelaufen

ceph_osd_swapping_1.jpg

root@ceph1-minirack:~# cat /proc/meminfo
MemTotal: 24656724 kB
MemFree: 208708 kB
MemAvailable: 14458664 kB
Buffers: 14197188 kB
Cached: 229064 kB
SwapCached: 4968 kB
Active: 4332072 kB
Inactive: 18277808 kB
Active(anon): 47384 kB
Inactive(anon): 8225416 kB
Active(file): 4284688 kB
Inactive(file): 10052392 kB
Unevictable: 158424 kB
Mlocked: 155352 kB
SwapTotal: 1048572 kB
SwapFree: 1004028 kB
Dirty: 12 kB
Writeback: 0 kB
AnonPages: 8337664 kB
Mapped: 168712 kB
Shmem: 71920 kB
KReclaimable: 332728 kB
Slab: 587740 kB
SReclaimable: 332728 kB
SUnreclaim: 255012 kB
KernelStack: 11920 kB
PageTables: 26592 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 13376932 kB
Committed_AS: 14978128 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 624020 kB
VmallocChunk: 0 kB
Percpu: 27264 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
FileHugePages: 0 kB
FilePmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 349568 kB
DirectMap2M: 9078784 kB
DirectMap1G: 17825792 kB
root@ceph1-minirack:~#
 
Es liegt wohl am aktivierten SWAP

ceph_osd_free_1.jpg

root@ceph1-minirack:~# for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | grep kB | egrep -v "0 kB"
pvedaemon worke8536 kB
pmxcfs 1192 kB
ceph-osd 3188 kB
ceph-osd 3184 kB
pve-firewall 5544 kB
pvestatd 796 kB
pvescheduler 3648 kB
pvedaemon 9816 kB
pve-ha-lrm 7256 kB
pvedaemon worke8452 kB
root@ceph1-minirack:~#