Portál AbcLinuxu, 10. května 2025 09:16

Dotaz: Vysoka IO utilizace na SSD

9.5.2015 18:09 Petr Holik
Vysoka IO utilizace na SSD
Přečteno: 919×
Odpovědět | Admin
Ahoj, pred par dny jsme presunuli stroj(kontejner), kde bezi pouze databaze z HDD(obycejne 500GB/7K2 SATA) na SSD. Utilizace sice klesla, ale temer neznatelne. Ted se stabilne pohybuje okolo 86% coz mi prijde vzhledem k poctu IO strasne moc. SSD jsou sdb a sdd jsou v RAIDu1 jako MD device a nad tim je LVMko.
#iostat -x -d
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               1.04    37.88    9.27  155.27   597.12  1908.68    30.46     0.83    5.03    0.77    5.29   4.75  78.24
sdd               0.00    37.59    0.00  164.83     0.03  2501.57    30.35     0.89    5.39    3.17    5.39   4.76  78.46
md1               0.00     0.00    1.04  192.82     4.21  1901.66    19.66     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00  154.48     0.07  1311.27    16.98     1.11    7.21    6.66    7.21   5.42  83.73
MD device je nad oddily, ktere zacinaji 2048 b od zacatku
# fdisk -l /dev/sdb
Disk /dev/sdb: 120.0 GB, 120034123776 bytes
1 heads, 53 sectors/track, 4423427 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   220203007   110100480   83  Linux

SSD jsou Device Model: INTEL SSDSC2BW120A4

Distro Debian 6 jadro 2.6.32

Jeste podotykam, ze chci resit jenom utilizaci, a ne to, zda by se nemela optimalizavat DB :)

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.5.2015 01:40 B.E.
Rozbalit Rozbalit vše Re: Vysoka IO utilizace na SSD
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, zkus: cat /proc/mdstat (zda neprobiha resync/check ?)

nainstaluj iotop (iotop -o ukaze, co aktualne vyzira disk)

debian 6 - j. 2.6.32 + kontejnery - neni to nahodou jadro pro vservery? na ssdeckach jsem ho jeste nezkousel, ale myslim ze uz podporu pro ssd ma.

(kdybys potreboval novejsi jadro, tak zkus http://repo.psand.net/ - jadra s podporou vserver prestal debian po 6ce podporovat, takze v debian7 uz neni. Todle dela manik, kterej prispiva do vservers.org)

co jsem slysel, tak obvykle DB delal moc SYNCu na disk a protoze jsou oba disky v Raidu, tak se musi cekat na oba dva, nez data zapisou)

snad sem trochu pomohl, urcite se tu casem najde nejaka makovice, ktera pomuze vic :o)

Entý
10.5.2015 10:12 Petr Holik
Rozbalit Rozbalit vše Re: Vysoka IO utilizace na SSD
Ahoj, resync ani check neprobiha :( iotop tam je, vypada takhle nejak:
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
11174  be/3 root        0.00 B/s    0.00 B/s  0.00 % 69.10 % [jbd2/dm-1-8]
  669  be/3 root        0.00 B/s    0.00 B/s  0.00 %  3.06 % [jbd2/dm-0-8]
807122 be/4 Debian-e    0.00 B/s   56.56 K/s  0.00 %  2.74 % mysqld --basedir=/usr --datadir=/var/lib/mysql/ --p~mysql/mysql.pid --socket=/var/run/mysqld/mysqld.sock
37963  be/4 Debian-e    0.00 B/s   56.56 K/s  0.00 %  2.65 % mysqld --basedir=/usr --datadir=/var/lib/mysql/ --pl~mysql/mysql.pid --socket=/var/run/mysqld/mysqld.sock
113161 be/4 Debian-e    0.00 B/s   22.63 K/s  0.00 %  0.93 % mysqld --basedir=/usr --datadir=/var/lib/mysql/ --p~mysql/mysql.pid --socket=/var/run/mysqld/mysqld.sock
113159 be/4 Debian-e    0.00 B/s   15.08 K/s  0.00 %  0.76 % mysqld --basedir=/usr --datadir=/var/lib/mysql/ --p~mysql/mysql.pid --socket=/var/run/mysqld/mysqld.sock
37939  be/4 Debian-e    0.00 B/s    3.77 K/s  0.00 %  0.20 % mysqld --basedir=/usr --datadir=/var/lib/mysql/ --pl~mysql/mysql.pid --socket=/var/run/mysqld/mysqld.sock

Co se tyka jadra, tak je pouzivame virtualizaci, ale ne vserver ale openvz. konkretne tam je 2.6.32-openvz-042stab104.1-amd64

ad sync - tak je to pravda ackoliv db je cela v pameti tak flushuje dirty stranky na disky(je tam docela dost zapisu). Ano ceka se na obe SSDcka nicmene tim ze nerotuji, a nemusi se u nich cekat az se nekam vystavi hlavicka, tak by se tim u nich nemela zvetsovat latence(snizovat IO/s), coz ostatne je videt i z vypisu vyse, kde maji oba uplne stejnou utilizaci.

Vrta mi to hlavou, protoze ta IO zatez po prechodu na SSD klesla uplne minimalne, a ty disky by mely zvladat desitky tisic 4KB IO za sekundu. Doufam, ze se takova hlava najde :) jinak asi budu muset koupit jeste dalsi SSDcka a v nejakem neprodukcnim serveru to otestovat.

10.5.2015 23:54 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Vysoka IO utilizace na SSD
To co dělá hlavní zátěž je žurnál na dm-1. zkusil bych commit=60 do fstab a předpokládám, že noatime tam už je. Zkusil bych se ptát iotop -obtqqq | grep jbd2 co se v průběhu děje. A možná se dá použít i echo 1 > /proc/sys/vm/block_dump, kdy se monitorují veškeré diskové akce a z dmesg výstup vytáhnu. Tady opatrně. Určite je nutné vypnout log (tam se to zapisuje také a dostaneme se do smyčky)
11.5.2015 10:08 trubicoid
Rozbalit Rozbalit vše Re: Vysoka IO utilizace na SSD
Odpovědět | | Sbalit | Link | Blokovat | Admin
...

MD device je nad oddily, ktere zacinaji 2048 b od zacatku

vono to takhle uplne nestaci, obzvlast, kdyz mate partice > md > lvm > ext4, nakonec musi byt ty bloky v ext4 zarovnany treba na 2048b, nebo 4096b (pro jistotu)

pro vice informaci trebas

nakonec tam vlastne ani ty partice byt nemusi; jediny duvod pro ne je, aby se nepouzilo cele misto a na konci zbylo misto na over-provisioning

11.5.2015 20:59 Petr Holik
Rozbalit Rozbalit vše Re: Vysoka IO utilizace na SSD
Ahoj,

dik za info, koupim dalsi SSD a vyzkousim jaky to ma vliv.

Partice jsem tam delal a delam(pro ne-hw raid) pro to, ze kdyz je novy disk, co se v tom poli meni, lehce mensi, tak se s tim zbytecne nemusi cachrovat(zmensovani fs online pod bezici databazi neni zrovna moje oblibena cinnost :)
12.5.2015 16:52 trubicoid
Rozbalit Rozbalit vše Re: Vysoka IO utilizace na SSD
ten lvm taky nechapu, asi zvyk no

prave vsechny urovne musi byt zarovnany, coz je oprusk

jednoducha zkouska by bylo vzit jen jeden ssd a bez partice na nem udelat primo ext4, tim padem bude vse zarovnany a zkusit to tak

jinak partice by nekonec nemela byt jen lehce mensi, ale spis az o 20% mensi, tedy 100GB misto 120GB, kvuliva overprovisioningu
12.5.2015 21:04 Petr Holik
Rozbalit Rozbalit vše Re: Vysoka IO utilizace na SSD
Ahoj,

LVM je tam z jedineho duvodu - SNAPSHOTy - tzn zalohovani za behu.

Nemas nejaky dobry clanek o tom? Kdyz sam o sobe udelam partici na SSD mensi a zbytek nevyuzivam, tak to to SSDcko pouzije jako na overprovisioning?

Druhou veci je to, ze na FS je zaplneno jenom cca 13 procent mista, to ma taky vliv? Nebo je to jenom o te velikosti partition?

12.5.2015 22:28 trubicoid
Rozbalit Rozbalit vše Re: Vysoka IO utilizace na SSD
to zalezi na vyrobci SSD, nektery to delali utilitou do widli, nektery potrebovali nastavit Host Protected Area, nekterym staci proste nepsat po celem disku, coz udelas tou partici

nebo stejne funguje i kdyz tam mas ext4, neni uplne plny a udelas fstrim, zalezi, zas jestli tem fstrim proleze pres vsechny ty vrstvy fs-lvm-dm (fstrim poustis z cronu? lepsi vykon nez discard mount option, to tam doufam nemas, ze? to by to taky mohlo tedy delat)

vono jako ten overprovisioning a volny misto a fstrim hrajou roli az kdyz se zapise hodne dat, pak by se mohlo ssd zpomalovat pri zapise, jestli to dela uz od zacatku a pri cteni, tak bych spis kontroloval zarovnani

jeste dobrej trik je smazani ssd pred pouzitim, tim mu vlastne reknes, ze je vsude volno, kupodivu se to nedela jak u hdd pomoci dd if=/dev/zero, ale pres ata secure erase treba takto

tam je taky odkaz na overprovisioning pres hpa, to muzes zkusit, nektery ssd to hpa nepoberou, pak to asi nepotrebujou a udelas to bud partici nebo volnym mistem

bych asi zkusil prvne na holej disk bez dm a lvm treba ext4 nebo xfs a videlo by se, jestli to taky dela; na ty snapshoty mozna btrfs? xfs to myslim taky umi, nebo klidne to lvm, jen kontroluj zarovani a ze to nebude pomalejsi nez ten holej disk
13.5.2015 19:38 Petr Holik
Rozbalit Rozbalit vše Re: Vysoka IO utilizace na SSD
Ahoj,

diky zalaboruju nad novym diskem. Kdyz na neco prijdu postnu to sem :)
13.5.2015 20:14 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Vysoka IO utilizace na SSD
Podle mne je úplně jedno u moderních disků, jestli nechám 20% tím, že mám menší oddíl, nebo tím, že na oddíle nechávám 20% volného místa a používám trim, aby volný prostor byl disku sdělen. Definování oddílů nijak nespecifikuje do kterých buňek se zapisuje. Celou alokaci řídí řadič SSD a vždy s ním pracuje jako s celkem.
14.5.2015 08:54 trubicoid
Rozbalit Rozbalit vše Re: Vysoka IO utilizace na SSD
nektery ssd bazirujou na tom hpa, nektery to hpa ani nepodporujou

novy to maji asi tak jak rikas, akorat musis hlidat volny misto a trimovat

ta partice o 20% mensi nez disk zajisti to, ze nemusis hlidat volny misto no, neni to vyber bunek

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.