د fio او etc په اړه لنډه کیسه
د کلستر فعالیت
fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300 --name=mytest
تاسو یوازې اړتیا لرئ پایلې وګورئ او وګورئ چې د مودې 99 فیصده ده
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]
یادښتونه
- موږ زموږ د ځانګړي سناریو لپاره --size او --bs انتخابونه تنظیم کړي دي. د fio څخه ګټورې پایلې ترلاسه کولو لپاره، خپل ارزښتونه چمتو کړئ. چیرته یې ترلاسه کړئ؟ لوستل
موږ څنګه د fio تنظیم کول زده کړل . - د ازموینې په جریان کې، ټول I/O بار د fio څخه راځي. په ریښتیني ژوند سناریو کې ، احتمال به د لیکلو نورې غوښتنې وي چې د wal_fsync_duration_seconds پورې اړوندو سربیره ذخیره کې راځي. اضافي بار به د wal_fsync_duration_seconds ارزښت زیات کړي. نو که 99 فیصده 10ms ته نږدې وي، ستاسو ذخیره د سرعت څخه تیریږي.
- نسخه واخلئ
فای له 3.5 څخه ټیټ نه وي (پخواني د fdatasync دورې فیصدي نه ښیې). - پورته د fio څخه د پایلو یوازې یوه ټوټه ده.
د fio او etcd په اړه اوږده کیسه
WAL په etcd کې څه شی دی؟
معمولا ډیټابیسونه کاروي
کله چې یو پیرودونکی د کیلي ارزښت پلورنځي ته کیلي اضافه کوي یا د موجوده کیلي ارزښت تازه کوي ، etcd عملیات په WAL کې ثبتوي ، کوم چې په دوامداره ذخیره کې منظم فایل دی. etcd باید په بشپړ ډول ډاډه وي چې د WAL ننوتل په حقیقت کې د پروسس کولو ته دوام ورکولو دمخه پیښ شوي. په لینکس کې ، د دې لپاره یو سیسټم زنګ کافي ندي.
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>
له بده مرغه، دوامداره ذخیره کولو ته لیکل سمدستي نه پیښیږي. که د fdatasync زنګ ورو وي، د etcd سیسټم فعالیت به زیانمن شي.
د fio سره د ذخیره کولو اټکل
که تاسو اړتیا لرئ ارزونه وکړئ چې آیا ستاسو ذخیره د etcd لپاره مناسبه ده، fio وکاروئ، د I/O د بار ازموینې خورا مشهور وسیله. دا باید په یاد ولرئ چې د ډیسک عملیات خورا توپیر لري: همغږي او غیر متمرکز، د سیسټم کالونو ډیری ټولګي، او داسې نور. د پایلې په توګه، د fio کارول خورا ستونزمن دي. دا ډیری پیرامیټونه لري، او د دوی د ارزښتونو مختلف ترکیبونه خورا مختلف I/O کاري بارونه تولیدوي. د etcd لپاره د کافي ارقامو ترلاسه کولو لپاره، تاسو باید ډاډ ترلاسه کړئ چې د WAL فایلونو لیکلو په وخت کې د fio څخه د ازموینې لیکلو بار د etcd څخه ریښتینې بار ته څومره نږدې وي.
له همدې امله، fio باید لږترلږه، فایل ته د پرله پسې لیکنو لړۍ په بڼه یو بار جوړ کړي، هر لیک به د سیسټم کال ولري.
ولې واقعیا فیو او څنګه موږ د دې تنظیم کول زده کړل
پدې پوسټ کې ، موږ یو ریښتینی قضیه بیانوو. موږ یو کلستر لرو
مګر د دې لپاره، دوه ستونزې باید حل شي. لومړی، د I/O بار چې etcd رامینځته کوي د WAL لیکلو په څیر څه ښکاري؟ کوم سیسټم زنګونه کارول کیږي؟ د ریکارډ اندازه څومره ده؟ دوهم، که موږ دې پوښتنو ته ځواب ووایو، موږ څنګه د فیو سره ورته کاري بار بیا تولید کوو؟ مه هیروئ چې فیو د ډیری اختیارونو سره خورا انعطاف وړ وسیله ده. موږ دواړه ستونزې په یوه طریقه حل کړې - د امرونو په کارولو سره
موږ لومړی د کبرنیټس لپاره د etcd سرور سپړلو لپاره سټریس کارولی کله چې په کلستر کې هیڅ بار نه و. موږ ولیدل چې د WAL نږدې ټول ریکارډونه د ورته اندازې په اړه وو: 2200-2400 بایټ. له همدې امله، د پوسټ په پیل کې په کمانډ کې، موږ پیرامیټر -bs = 2300 مشخص کړل (bs معنی د هر فیو ننوتلو لپاره د بایټ اندازه). په یاد ولرئ چې د etcd ننوتلو اندازه د etcd نسخه، توزیع، پیرامیټر ارزښتونو، او نور پورې اړه لري، او د fdatasync موده اغیزه کوي. که تاسو ورته سناریو لرئ، د کره شمیرې موندلو لپاره خپل etcd پروسې د سټیس سره معاینه کړئ.
بیا، د ښه نظر ترلاسه کولو لپاره چې د etcd فایل سیسټم څه کوي، موږ دا د سټریس او -ffttT اختیارونو سره پیل کړ. نو موږ هڅه وکړه چې د ماشوم پروسې معاینه کړو او د هر یو محصول په جلا فایل کې ثبت کړو، او همدارنګه د هر سیسټم کال د پیل او مودې په اړه مفصل راپورونه ترلاسه کړو. موږ د سټریس محصول زموږ تحلیل تاییدولو لپاره lsof کارولی او وګورو چې کوم فایل تشریح کونکی د کوم هدف لپاره کارول کیږي. نو د سټریس په مرسته، پورته ښودل شوي پایلې ترلاسه شوې. د همغږي کولو وخت احصایې تایید کړې چې د etcd څخه wal_fsync_duration_seconds د WAL فایل توضیح کونکو سره د fdatasync کالونو سره مطابقت لري.
موږ د fio لپاره اسنادو ته لاړ او زموږ د سکریپټ لپاره یې اختیارونه غوره کړل ترڅو fio د etcd په څیر یو بار تولید کړي. موږ د سیسټم زنګونه او د دوی موده هم د سټیس څخه د fio په چلولو سره چیک کړه ، ورته etcd.
موږ په دقت سره د --size پیرامیټر ارزښت غوره کړی ترڅو د fio څخه د I/O ټول بار استازیتوب وکړي. زموږ په قضیه کې، دا د ذخیره کولو لپاره لیکل شوي د بایټس مجموعه ده. دا په مستقیم ډول د لیکلو (او fdatasync) سیسټم تلیفونونو شمیر سره متناسب و. د bs د یو ټاکلي ارزښت لپاره، د fdatasync کالونو شمیر = اندازه/bs. څرنګه چې موږ د فیصدي سره علاقه درلوده، موږ باید د ډاډ ترلاسه کولو لپاره کافي نمونې ولرو، او موږ محاسبه کړه چې 10^4 به زموږ لپاره کافي وي (دا 22 میبیبایټ دی). که --size کوچنی وي، بهر ته رسیدونکي واقع کیدی شي (د بیلګې په توګه، د fdatasync ډیری زنګونه د معمول څخه ډیر وخت نیسي او 99 فیصده اغیزه کوي).
دا پخپله هڅه وکړئ
موږ تاسو ته وښودله چې څنګه fio وکاروئ او وګورئ چې ایا ذخیره د etcd لپاره د ښه ترسره کولو لپاره ګړندۍ ده. اوس تاسو کولی شئ دا د خپل ځان لپاره وکاروئ ، د مثال په توګه ، د SSD ذخیره کولو سره مجازی ماشینونه
سرچینه: www.habr.com