Mion-sgrùdadh air buaidh dèanadais an tùs ùine a chaidh a thaghadh san t-siostam

Thug Brendan Gregg, aon de luchd-leasachaidh DTrace, a tha an-dràsta a’ leasachadh innealan mion-sgrùdadh dèanadais stèidhichte air BPF ann an kernel Linux, geàrr-chunntas air an eòlas a fhuaireadh bho bhith a’ dèanamh anailis air na duilgheadasan coileanaidh a thachair air Netflix nuair a bha e a’ gluasad an Cassandra DBMS bho CentOS gu Ubuntu. an sgòth Amazon EC2 stèidhichte air Xen. Às deidh imrich, chaidh an luchd CPU suas 30% agus mheudaich an dàil ann an obair sgrìobhaidh timcheall air an aon uiread. Mar a thionndaidh e, tha coileanadh thagraidhean a dh ’iarras fiosrachadh ùine gu mòr an urra ris an dearbh stòr ùine a chaidh a thaghadh san t-siostam.

An toiseach, cha robh an t-adhbhar airson an lùghdachadh ann an coileanadh follaiseach agus thòisich am breithneachadh le bhith a’ cumail sùil air a’ bhuaidh a dh’ fhaodadh a bhith aig pròiseasan siostam dian-ghoireasan a ruith no a chuir air bhog bho àm gu àm a’ cleachdadh a’ mhullach agus goireasan execsnoop. Ach bha a h-uile càil a’ nochdadh gun robh caitheamh ghoireasan air a dhol suas gu sònraichte anns an Cassandra DBMS, sgrìobhte ann an Java. Le bhith a’ dèanamh coimeas eadar measaidhean pròifil dà phròiseas Cassandra a bha a’ ruith aig an aon àm air CentOS agus Ubuntu, a’ giullachd nan aon cheistean, sheall sin gun deach timcheall air 32% den ùine iomlan a chaitheamh a’ gairm os:: javaTimeMillis (), a thathas a’ cleachdadh gus fiosrachadh fhaighinn mun ùine làithreach. .

Às deidh seo, chaidh deuchainn a dhèanamh anns an deach tagradh sìmplidh Java a sgrìobhadh ris an canar an dòigh System.currentTimeMillis () ceud millean uair ann an lùb. Sheall ruith an tagraidh gun tug e 13 diogan airson a chrìochnachadh air CentOS, agus timcheall air 68 diogan air Ubuntu, i.e. 5 tursan nas luaithe. Chaidh prògram coltach ris a sgrìobhadh ann an C ris an canar an gnìomh gettimeofday () ceud millean uair, ach nuair a chaidh a chuir gu bàs, chaidh toraidhean co-chosmhail fhaighinn.

Bhon a dh'fhàs e soilleir gu bheil an tùs an duilgheadas a bha an gnìomh a 'tilleadh an-dràsta ùine, aire air a thionndadh gu atharrachaidhean ann an comharran nuair a' taghadh diofar thùsan de dearbh àm san t-siostam. A’ breithneachadh leis na tha ann an “/ sys/devices/system/clocksource/clocksource0/current_clocksource”, chaidh an timer “xen” a chleachdadh gu bunaiteach nuair a bha e a’ ruith Linux san t-siostam aoighean. Às deidh an stòr ùine atharrachadh gu “tsc”, chaidh ùine cur an gnìomh an tagraidh deuchainn ann an Ubuntu sìos bho 68 gu 3.3 diogan, i.e. dh'fhàs e 20 tursan nas luaithe. A bharrachd air an sin, chaidh deuchainn coileanaidh a dhèanamh air stòr ùine kvm-cloc, a sheall àrdachadh ann an dàil le 20% an taca ri TSC. $ cat / sys/devices/system/clocksource/clocksource0/available_clocksource xen tsc hpet acpi_pm $ cat / sys/devices/system/clocksource/clocksource0/current_clocksource xen $ time java TimeBench fìor cleachdaiche 1m8.300s 0m38.337s sys 0m29.875. mac-talla tsc> / sys/devices/system/clocksource/clocksource0/current_clocksource $ time java TimeBench fìor 0m3.370s cleachdaiche 0m3.353s sys 0m0.026s

Gus an ùine fhaighinn nuair a thaghas tu stòr TSC, thathas a ’cleachdadh an stiùireadh pròiseasar RDTSC, agus chan eil feum air gairm siostaim airson a chuir gu bàs (chan fheum an stiùireadh sochairean àrdaichte agus bheir e a-mach luach bhon chunntair ùine a chaidh a thogail a-steach don CPU). Gu gnàthach, chan eil TSC air a chuir an gnìomh oir anns na seann làithean cha do chuir an stòr seo a-mach gluasad ùine mean air mhean, a tha ann am pròiseasairean eile air an atharrachadh le bathar-bog gus leughaidhean nas cruinne a choileanadh. A rèir innleadair a tha gu sònraichte a’ leasachadh pròiseasar, tha eagal mu ghluasadan ùine ann a bhith a’ cleachdadh TSC air a bhith ceàrr o chionn fhada agus ann am pròiseasairean an latha an-diugh faodaidh an stòr seo leughaidhean seasmhach a thoirt gu buil airson bhliadhnaichean.

Le bhith ag atharrachadh frithealaichean cinneasachaidh aig Netflix gu stòr TSC thàinig lùghdachadh 43% ann an sgrìobhadh latency agus choilean e toraidhean a’ cleachdadh Ubuntu a bha 4 tursan nas luaithe na rèiteachaidhean a bha a’ ruith CentOS le stòr ùine “xen”. Chaidh toraidhean an sgrùdaidh a ghluasad gu Amazon, a mhol gu h-oifigeil a bhith a’ cleachdadh an stòr ùine àbhaisteach TSC ann an àrainneachdan AWS EC2 stèidhichte air an Xen hypervisor (tha kvm-cloc fhathast air a mholadh ann an àrainneachdan stèidhichte air an Nitro hypervisor).

Source: fosgailtenet.ru

Cuir beachd ann