Ibali elifutshane malunga nefio kunye etcd
Ukusebenza kweqela
fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300 --name=mytest
Kufuneka nje ujonge iziphumo kwaye ujonge ukuba ipesenti ezingama-99 zexesha
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]
Amanqaku
- Senze ngokwezifiso amaxabiso e--ubungakanani kunye ne-bs parameters kwimeko yethu ethile. Ukufumana iziphumo eziluncedo kwifio, ngenisa amaxabiso akho. Ndingazifumana phi? Funda,
indlela esifunde ngayo ukuqwalasela i-fio . - Ngexesha lokuvavanya, yonke imithwalo ye-I / O ivela kwi-fio. Kwimeko yokwenyani, kuya kubakho ezinye izicelo ezibhaliweyo eziza kwindawo yokugcina kunezo zinxulunyaniswa ne-wal_fsync_duration_seconds. Umthwalo owongezelelweyo uya kwandisa ixabiso le-wal_fsync_duration_seconds. Ke ukuba i-99th percentile iphantse ibe yi-10ms, ugcino lwakho alukhawulezi ngokwaneleyo.
- Thatha inguqulelo
fio hayi ngaphantsi kwama-3.5 (ezangaphambili azibonisi fdatasync ubude beepesenti). - Entla sisiqwengana nje seziphumo ezivela kwifio.
Ibali elide malunga nefio kunye etcd
Yintoni i-WAL kwi etcd
Ngokuqhelekileyo kusetyenziswa oovimba beenkcukacha
Xa umxhasi esongeza isitshixo kwi-key-value store okanye ehlaziya ixabiso lesitshixo esele sikhona, etcd ubhala irekhodi yalo msebenzi kwi-WAL, eyifayile eqhelekileyo kwisitoreji esiqhubekayo. njl. Kwi-Linux, enye inkqubo yokufowuna ayanele kule nto
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>
Ngelishwa, ukubhalela ugcino oluzingisileyo akukhawulezi. Ukuba umnxeba we-fdatasync uyacotha, ukusebenza kwenkqubo ye- etcd kuya kuthotywa.
Uvavanyo logcino usebenzisa fio
Ukuba ufuna ukuvavanya ukuba ugcino lwakho lufanelekile etcd, sebenzisa i-fio, isixhobo esithandwa kakhulu sokuvavanya umthwalo we-I/O. Kufuneka kukhunjulwe ukuba imisebenzi yediski inokwahluka kakhulu: i-synchronous kunye ne-asynchronous, iiklasi ezininzi zeefowuni zenkqubo, njl. Ngenxa yoko, i-fio inzima kakhulu ukuyisebenzisa. Ineeparamitha ezininzi, kwaye indibaniselwano eyahlukileyo yamaxabiso azo ivelisa imithwalo yemisebenzi ye-I/O eyahlukileyo kakhulu. Ukufumana amanani aneleyo e-etcd, kufuneka uqinisekise ukuba uvavanyo lokubhala umthwalo ovela kwi-fio usondele kakhulu kumthwalo wangempela ovela kwi-etcd xa ubhala iifayile ze-WAL.
Ngoko ke, i-fio kufuneka, ubuncinci, ivelise umthwalo wenani lolandelelwano ibhala kwifayile, ukubhala ngakunye okubandakanya umnxeba wenkqubo.
Kutheni i-fio kunye nendlela esifunde ukuyiqwalasela ngayo
Kule post sichaza imeko yokwenyani. Sasineqela
Kodwa ngenxa yoko kwakuyimfuneko ukusombulula iingxaki ezimbini. Okokuqala, yintoni umthwalo we-I/O odalwa yi- etcd xa ubhalela i-WAL? Zeziphi iifowuni zesistim ezisetyenziswayo? Zingakanani izithuba? Okwesibini, ukuba siphendula le mibuzo, sinokuphinda sivelise umsebenzi ofanayo kunye ne-fio? Ungalibali ukuba i-fio sisixhobo esibhetyebhetye kakhulu esinokhetho oluninzi. Sizisombulule zombini iingxaki ngendlela enye - sisebenzisa imiyalelo
Into yokuqala esiyenzileyo kukusebenzisa umtya ukufunda iseva etcd yeKubernetes xa kwakungekho mthwalo kwiqela. Sibonile ukuba phantse zonke iirekhodi ze-WAL zilingana nobukhulu obufanayo: 2200-2400 bytes. Ngoko ke, kumyalelo ekuqaleni kweposi, sichaze iparameter -bs=2300 (bs ithetha ubungakanani bebhayithi kwifio nganye yokungena). Qaphela ukuba ubungakanani bengeno etcd ixhomekeke kuguqulelo etcd, ngenqanawa, amaxabiso parameter, njalo njalo kwaye kuchaphazela ubude bexesha fdatasync. Ukuba unemeko efanayo, jonga iinkqubo zakho ze-etd usebenzisa umtya ukuze ufumane amanani achanekileyo.
Ke, ukufumana umbono olungileyo wokuba yintoni inkqubo yefayile ye- etcd, siyibalekisile ngomtya kunye neenketho ze -ffttT. Ngoko sizame ukufunda iinkqubo zomntwana kwaye sirekhode umphumo ngamnye wabo kwifayile eyahlukileyo, kwaye ufumane iingxelo ezicacileyo malunga nokuqala kunye nobude befowuni nganye yenkqubo. Sisebenzise i-lsof ukuqinisekisa uhlalutyo lwethu lwemveliso yomtya kwaye sibone ukuba yeyiphi inkcazo yefayile esetyenziselwe ziphi iinjongo. Ke, sisebenzisa umtya, sifumene iziphumo eziboniswe ngasentla. Izibalo zexesha longqamaniso ziqinisekisile ukuba i-wal_fsync_duration_seconds metric ukusuka etcd ihambelana neefowuni ze-fdatasync ezineenkcazo zefayile ye-WAL.
Sijonge amaxwebhu e-fio kwaye sakhetha iiparamitha zeskripthi sethu ukuze i-fio ivelise umthwalo ofana ne-etd. Siphinde sajonga iifowuni zesistim kunye nobude bazo ngokuqhuba i-fio ukusuka kumtya, ngokufana nokunye.
Sikhethe ngononophelo ixabiso le---size parameter, emele wonke umthwalo we-I/O we-fio. Kwimeko yethu, eli linani elipheleleyo leebhayithi ezibhaliweyo kwindawo yokugcina. Kuye kwabonakala kuhambelana ngqo nenani lokubhala (kunye ne-fdatasync) iifowuni zenkqubo. Ngexabiso elithile le-bs, inani leefowuni kwi-fdatasync = ubukhulu/bs. Ekubeni sasinomdla kwi-percentile, kufuneka sibe neesampuli ezaneleyo ukuze sithembeke, kwaye sibale ukuba i-10 ^ 4 iya kukwanela kuthi (yi-22 mebibytes). Ukuba --ubungakanani buncinci, ii-outliers zingenzeka (umzekelo, iifowuni ezininzi ze-fdatasync zithatha ixesha elide kunesiqhelo kwaye zichaphazela ipesenti ezingama-99).
Yizame ngokwakho
Sibonise indlela yokusebenzisa i-fio kwaye sifumanise ukuba ugcino lukhawuleza ngokwaneleyo ukuba etcd luqhube kakuhle. Ngoku unokuzama oku ngokuziqhelanisa ngokwakho, usebenzisa, umzekelo, oomatshini ababonakalayo abanokugcinwa kwe-SSD kwi
umthombo: www.habr.com