Jaka może być przyczyna wolnego zapisu na dysku SSD?

0

Mamy na serwerze pewien problem z wolnym zapisem danych na SSD NVMe (RAID). Prędkość zapisu nie chce przekroczyć 1.1 GB/s pomimo że na innym serwerze na dyskach HDD (też RAID) osiąga lepsze wyniki. Ba, nawet u mnie ma laptopie zapis to 1.6 GB/s.

Sprawdzałem miotop ale nic takiego się nie dzieje. Taka prędkość zapisu jest teraz, wczesnym rankiem gdzie load jest niewielki. Gdzie szukać problemu?

0

Jaki masz włączony IO scheduler (cat /sys/block/nvme1n1/queue/scheduler)?

0

To polecenie zwraca none.

0

Oki, czyli scheduler jest prawidłowy - serwer ma takie osiągi od początku czy spowalnia z czasem?

0

Może głupie pytanie, ale czy ten serwer jest fizyczną maszyną, czy wirtualnym bytem typu VPS?

0

Wydaje mi się że jeszcze jakiś czas temu sprawdzałem i prędkość zapisu wynosiła 4 GB/s. Głowy sobie nie dam uciąć czy to akurat ten serwer testowałem ale na 90% wydaje mi się że tak.

EDIT: Jednak testowałem na innym rozmiarze bloku.

dd if=/dev/zero of=/tmp/output bs=384k count=1k; rm -f /tmp/output
1024+0 records in
1024+0 records out
402653184 bytes (403 MB, 384 MiB) copied, 0.0758172 s, 5.3 GB/s

Czyli wynik super. Przy mniejszym rozmiarze:

dd if=/dev/zero of=/tmp/output bs=8k count=10k; rm -f /tmp/output
10240+0 records in
10240+0 records out
83886080 bytes (84 MB, 80 MiB) copied, 0.0725718 s, 1.2 GB/s

U mnie na lokalu:

dd if=/dev/zero of=/tmp/output bs=384k count=1k; rm -f /tmp/output
1024+0 records in
1024+0 records out
402653184 bytes (403 MB, 384 MiB) copied, 0,610253 s, 660 MB/s

dd if=/dev/zero of=/tmp/output bs=8k count=10k; rm -f /tmp/output
10240+0 records in
10240+0 records out
83886080 bytes (84 MB, 80 MiB) copied, 0,0581666 s, 1,4 GB/s

Może tak ma być? :| @Patryk27: zobacz ten mój post: https://4programmers.net/Forum/1636523 Do testowania wydajności skłoniły mnie kiepskie dane zapisu z postgresa.

0

Dedykowane serwery tez sie roznia miedzy soba. W niektorych firmach jak dostaja taki to puszczaja na jakis czas testy z bardzo mocnym obciazeniem zeby zobaczyc czy z maszyna wszystko ok.

0

Zależy jaki dysk, jak na kościach tlc to może się kończą, pewnie warto byłoby sprawdzić smart.

1

Nie wierz w testy które trwają poniżej 1s.

piotr@piotr-Prec:~$ dd if=/dev/zero of=/tmp/output bs=384k count=1k; rm -f /tmp/output
1024+0 records in
1024+0 records out
402653184 bytes (403 MB, 384 MiB) copied, 0,208723 s, 1,9 GB/s

piotr@piotr-Prec:~$ dd if=/dev/zero of=/tmp/output bs=384k count=100k; rm -f /tmp/output
102400+0 records in
102400+0 records out
40265318400 bytes (40 GB, 38 GiB) copied, 75,2157 s, 535 MB/s


piotr@piotr-Prec]:~$ dd if=/dev/zero of=/tmp/output bs=8k count=10k; rm -f /tmp/output
10240+0 records in
10240+0 records out
83886080 bytes (84 MB, 80 MiB) copied, 0,0515778 s, 1,6 GB/s

piotr@piotr-Prec:~$ dd if=/dev/zero of=/tmp/output bs=8k count=1000k; rm -f /tmp/output
1024000+0 records in
1024000+0 records out
8388608000 bytes (8,4 GB, 7,8 GiB) copied, 11,8708 s, 707 MB/s


Po drodze masz ileś tam cache'y, trzeba by chyba coś więcej użyć żeby je pominąć. Najprostszy sposób to je pozapełniać - wtedy docierasz do hardware'u.

0
adam@4programmers:~$ sudo dd if=/dev/zero of=/tmp/output bs=8k count=1000k; rm -f /tmp/output
1024000+0 records in
1024000+0 records out
8388608000 bytes (8.4 GB, 7.8 GiB) copied, 6.35621 s, 1.3 GB/s

Czyli nie jest tak źle ...

0

Przy okazji znalazłem niezły tutorial - ale bardziej pod desktop - dotyczący optymalizacji Linunksa pod SSD:
https://easylinuxtipsproject.blogspot.com/p/ssd.html

0

Czy masz włączony TRIM? To jest Raid0? Bez TRIM każdy SSD w końcu zwolni, zwłaszcza jak jest duży load, a w Linuksach jest domyślnie wyłączony.

0

Możliwa że ta niska wydajność spowodowana jest systemem plików zfs: https://blog.pgaddict.com/posts/postgresql-performance-on-ext4-and-xfs

1 użytkowników online, w tym zalogowanych: 0, gości: 1