I have a 16 X 1 TB ceph cluster over 4 nodes and my write latency is kinda slow. I already have the db and wal on a separate SSD, Separate networks for the front and backend. How do I get the write latency to less than 16 ms? Other than going to full SSD cluster ofc.
Ping results
Backend:
Frontend network:
Ping results
Backend:
Code:
1 -> 2
37 packets transmitted, 37 received, 0% packet loss, time 36841ms
rtt min/avg/max/mdev = 0.037/0.064/0.098/0.015 ms
1 -> 3
29 packets transmitted, 29 received, 0% packet loss, time 28668ms
rtt min/avg/max/mdev = 0.040/0.055/0.080/0.012 ms
1-> 4
29 packets transmitted, 29 received, 0% packet loss, time 28677ms
rtt min/avg/max/mdev = 0.028/0.108/0.221/0.071 ms
2 -> 3
30 packets transmitted, 30 received, 0% packet loss, time 29682ms
rtt min/avg/max/mdev = 0.040/0.055/0.116/0.015 ms
2 -> 4
30 packets transmitted, 30 received, 0% packet loss, time 29704ms
rtt min/avg/max/mdev = 0.032/0.114/0.255/0.076 ms
3 -> 4
30 packets transmitted, 30 received, 0% packet loss, time 29681ms
rtt min/avg/max/mdev = 0.034/0.105/0.227/0.066 ms
Frontend network:
Code:
1 -> 2
30 packets transmitted, 30 received, 0% packet loss, time 29704ms
rtt min/avg/max/mdev = 0.240/0.338/0.523/0.057 ms
1 -> 3
30 packets transmitted, 30 received, 0% packet loss, time 29704ms
rtt min/avg/max/mdev = 0.240/0.338/0.523/0.057 ms
1 -> 4
30 packets transmitted, 30 received, 0% packet loss, time 29698ms
rtt min/avg/max/mdev = 0.312/0.345/0.432/0.031 ms
2 -> 3
30 packets transmitted, 30 received, 0% packet loss, time 29688ms
rtt min/avg/max/mdev = 0.315/0.350/0.473/0.029 ms
2 -> 4
30 packets transmitted, 30 received, 0% packet loss, time 29697ms
rtt min/avg/max/mdev = 0.236/0.307/0.400/0.043 ms
3 -> 4
30 packets transmitted, 30 received, 0% packet loss, time 29698ms
rtt min/avg/max/mdev = 0.312/0.365/0.468/0.041 ms
Code:
fio --name=write_latency --ioengine=libaio --direct=1 --sync=1 --bs=4k --size=1G --numjobs=1 --runtime=60 --time_based --rw=write --filename=/tmp/testfile
write_latency: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.28
Starting 1 process
write_latency: Laying out IO file (1 file / 1024MiB)
Jobs: 1 (f=1): [W(1)][0.3%][w=4KiB/s][w=1 IOPS][eta 05h:30m:28s]
write_latency: (groupid=0, jobs=1): err= 0: pid=1492283: Thu Jul 4 03:00:21 2024
write: IOPS=13, BW=53.0KiB/s (54.3kB/s)(3220KiB/60702msec); 0 zone resets
slat (usec): min=36, max=532432, avg=709.84, stdev=18764.09
clat (msec): min=6, max=3886, avg=74.69, stdev=214.05
lat (msec): min=6, max=3886, avg=75.40, stdev=220.43
clat percentiles (msec):
| 1.00th=[ 7], 5.00th=[ 7], 10.00th=[ 7], 20.00th=[ 8],
| 30.00th=[ 8], 40.00th=[ 8], 50.00th=[ 9], 60.00th=[ 11],
| 70.00th=[ 26], 80.00th=[ 86], 90.00th=[ 205], 95.00th=[ 326],
| 99.00th=[ 936], 99.50th=[ 1045], 99.90th=[ 3876], 99.95th=[ 3876],
| 99.99th=[ 3876]
bw ( KiB/s): min= 8, max= 288, per=100.00%, avg=67.00, stdev=61.38, samples=96
iops : min= 2, max= 72, avg=16.75, stdev=15.35, samples=96
lat (msec) : 10=57.27%, 20=9.81%, 50=9.32%, 100=5.09%, 250=10.43%
lat (msec) : 500=5.59%, 750=0.87%, 1000=0.87%, 2000=0.62%, >=2000=0.12%
cpu : usr=0.01%, sys=0.08%, ctx=807, majf=0, minf=13
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,805,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=53.0KiB/s (54.3kB/s), 53.0KiB/s-53.0KiB/s (54.3kB/s-54.3kB/s), io=3220KiB (3297kB), run=60702-60702msec
Disk stats (read/write):
vda: ios=591/3853, merge=26/3558, ticks=24103/178271, in_queue=226908, util=90.29%