Indaba emfushane mayelana ne-fio nokunye
Ukusebenza kweqoqo
fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300 --name=mytest
Udinga nje ukubuka imiphumela futhi uhlole ukuthi amaphesenti angama-99 wesikhathi
sync (usec): min=534, max=15766, avg=1273.08, stdev=1084.70
sync percentiles (usec):
| 1.00th=[ 553], 5.00th=[ 578], 10.00th=[ 594], 20.00th=[ 627],
| 30.00th=[ 709], 40.00th=[ 750], 50.00th=[ 783], 60.00th=[ 1549],
| 70.00th=[ 1729], 80.00th=[ 1991], 90.00th=[ 2180], 95.00th=[ 2278],
| 99.00th=[ 2376], 99.50th=[ 9634], 99.90th=[15795], 99.95th=[15795],
| 99.99th=[15795]
Amanothi
- Senze ngokwezifiso izinketho ze--size kanye --bs zesimo sethu esithile. Ukuze uthole umphumela owusizo ku-fio, hlinzeka ngamavelu akho. Ungawatholaphi? Funda
ukuthi sifunde kanjani ukumisa i-fio . - Ngesikhathi sokuhlolwa, wonke umthwalo we-I/O uvela ku-fio. Esimeni sempilo yangempela, kungase kube nezinye izicelo zokubhala ezifika esilondolozini ngaphandle kwalezo ezihlobene nama-wal_fsync_duration_seconds. Umthwalo owengeziwe uzokhuphula inani lama-wal_fsync_duration_seconds. Ngakho-ke uma i-percentile engu-99 iseduze no-10ms, isitoreji sakho siphelelwa isivinini.
- Thatha inguqulo
fio hhayi ngaphansi kuka-3.5 (ezandulele azibonisi ubude besikhathi be-fdatasync). - Ngenhla amazwibela nje emiphumela evela ku-fio.
Indaba ende mayelana ne-fio nokunye
Iyini i-WAL njll
Ngokuvamile ukusetshenziswa kolwazi
Uma iklayenti lengeza ukhiye esitolo senani elingukhiye noma libuyekeza inani lokhiye okhona, njlld lirekhoda ukusebenza ku-WAL, okuyifayela elivamile eligcinwe kwisitoreji esiqhubekayo. etcd KUMELE uqiniseke ngokuphelele ukuthi ukufakwa kwe-WAL kwenzeke ngempela ngaphambi kokuqhubeka nokucubungula. Ku-Linux, ikholi yesistimu eyodwa ayanele kulokhu.
21:23:09.894875 lseek(8, 0, SEEK_CUR) = 12808 <0.000012>
21:23:09.894911 write(8, ". 20210220361223255266632$10 20103026"34"rn3fo"..., 2296) = 2296 <0.000130>
21:23:09.895041 fdatasync(8) = 0 <0.008314>
Ngeshwa, ukubhalela isitoreji esiqhubekayo akwenzeki ngokushesha. Uma ikholi ye-fdatasync ihamba kancane, ukusebenza kwesistimu njll kuzophazamiseka.
Ilinganisa isitoreji nge-fio
Uma udinga ukuhlola ukuthi isitoreji sakho sifanele njlld, sebenzisa i-fio, ithuluzi elidume kakhulu le-I/O lokuhlola ukulayisha. Kufanele kukhunjulwe ukuthi imisebenzi yediski ingahluka kakhulu: i-synchronous ne-asynchronous, amakilasi amaningi wezingcingo zesistimu, njll. Ngenxa yalokho, i-fio inzima kakhulu ukuyisebenzisa. Inamapharamitha amaningi, futhi inhlanganisela ehlukene yamanani azo ikhiqiza imithwalo yemisebenzi ye-I/O ehluke kakhulu. Ukuze uthole izibalo ezanele ze- etcd, kufanele uqiniseke ukuthi umthwalo wokubhala wokuhlola ovela ku-fio useduze ngangokunokwenzeka nomthwalo wangempela ovela njlld lapho ubhala amafayela we-WAL.
Ngakho-ke, i-fio kufanele, okungenani, idale umthwalo ngendlela yochungechunge lokubhala okulandelanayo efayeleni, ukubhala ngakunye kuzoba nocingo lwesistimu.
Kungani ngempela i-fio nokuthi sifunde kanjani ukuyibeka
Kulokhu okuthunyelwe, sichaza icala langempela. Sineqoqo
Kodwa ngenxa yalokhu, izinkinga ezimbili kwakufanele zixazululwe. Okokuqala, ingabe umthwalo we-I/O odalwa njlld uma ubhalela ku-WAL ubukeka kanjani? Yiziphi izingcingo zesistimu ezisetshenziswayo? Bungakanani usayizi wamarekhodi? Okwesibili, uma siphendula le mibuzo, siwenza kanjani umsebenzi ofanayo nge-fio? Ungakhohlwa ukuthi i-fio iyithuluzi eliguquguqukayo kakhulu elinezinketho eziningi. Sixazulule zombili izinkinga ngendlela eyodwa - sisebenzisa imiyalo
Siqale sasebenzisa i-strace ukuhlola iseva etcd ye-Kubernetes lapho kungekho mthwalo kuqoqo. Sibonile ukuthi cishe wonke amarekhodi e-WAL ayenosayizi ofanayo: 2200β2400 bytes. Ngakho-ke, emyalweni osekuqaleni kokuthunyelwe, sicacise ipharamitha -bs=2300 (bs isho usayizi wamabhayithi wokungena ngakunye kwe-fio). Qaphela ukuthi usayizi wokufakwayo njlld uncike enguqulweni njlld, ukusatshalaliswa, amanani epharamitha, njll., futhi kuthinta ubude besikhathi be-fdatasync. Uma unesimo esifanayo, hlola izinqubo zakho njll nge-strace ukuze uthole izinombolo eziqondile.
Bese, ukuze uthole umbono omuhle walokho okwenziwa uhlelo lwefayela njll, siluqale nge-strace kanye nezinketho ze -ffttT. Ngakho sizame ukuhlola izinqubo zengane futhi sirekhode okukhiphayo ngayinye yazo efayeleni elihlukile, futhi siphinde sithole imibiko enemininingwane mayelana nokuqala nobude bekholi yesistimu ngayinye. Sisebenzise i-lsof ukuze siqinisekise ukuhlaziya kwethu kokuphumayo kwe-strace futhi sibone ukuthi iyiphi isichazi sefayela ebesisetshenziselwa yiphi inhloso. Ngakho ngosizo lwe-strace, imiphumela eboniswe ngenhla yatholwa. Izibalo zesikhathi sokuvumelanisa ziqinisekisile ukuthi i-wal_fsync_duration_seconds esuka ku-etcd ihambisana namakholi we-fdatasync anezincazelo zefayela le-WAL.
Sidlule kumadokhumenti e-fio futhi sakhetha izinketho zeskripthi sethu ukuze i-fio ikhiqize umthwalo ofana no-ejjd. Siphinde sahlola amakholi wesistimu nobude bawo ngokusebenzisa i-fio kusuka ku-strace, efana ne- etcd.
Sikhethe ngokucophelela inani lepharamitha --size ukumela wonke umthwalo we-I/O ovela ku-fio. Esimweni sethu, leli inani eliphelele lamabhayithi abhalelwe isitoreji. Kuvele ukuthi ilingana ngqo nenombolo yezingcingo zohlelo (kanye ne-fdatasync). Ngenani elithile lika-bs, inombolo yezingcingo ze-fdatasync = usayizi/bs. Njengoba besinentshisekelo ku-percentile, bekufanele sibe namasampuli anele ukuze siqiniseke, futhi sabala ukuthi u-10^4 uzosanela (lokho kungama-mebibytes angama-22). Uma --usayizi mncane, abangaphandle bangase bavele (isibonelo, izingcingo ezimbalwa ze-fdatasync zithatha isikhathi eside kunokuvamile futhi zithinte i-99th percentile).
Zizame wena
Sikubonise ukuthi ungasebenzisa kanjani i-fio futhi ubone ukuthi isitoreji siyashesha ngokwanele yini ukuthi i- etcd isebenze kahle. Manje usungazama ngokwakho usebenzisa, isibonelo, imishini ebonakalayo enesitoreji se-SSD ngaphakathi
Source: www.habr.com