Anailís ar thionchar feidhmíochta na foinse ama a roghnaíodh sa chóras

Thug Brendan Gregg, ceann d'fhorbróirí DTrace, atá ag forbairt uirlisí anailíse feidhmíochta bunaithe ar BPF san eithne Linux faoi láthair, achoimre ar an taithí a fuarthas ó anailís a dhéanamh ar na fadhbanna feidhmíochta a bhí ag Netflix nuair a aistríodh Cassandra DBMS ó CentOS go Ubuntu. an scamall Amazon EC2 bunaithe ar Xen. Tar éis imirce, tháinig méadú 30% ar an ualach LAP agus tháinig méadú thart ar an méid céanna ar an moill le linn oibríochtaí scríofa. Mar a tharla, braitheann feidhmíocht na n-iarratas a iarrann faisnéis ama go dian go mór ar an bhfoinse ama cruinn a roghnaítear sa chóras.

Ar dtús, ní raibh an chúis leis an laghdú ar fheidhmíocht soiléir agus cuireadh tús leis an diagnóis le monatóireacht a dhéanamh ar an tionchar a d’fhéadfadh a bheith ag rith go leanúnach nó a seoladh go tréimhsiúil próisis chórais atá dian ar acmhainní ag baint úsáide as na fóntais barr agus execsnoop. Ach léirigh gach rud gur mhéadaigh tomhaltas acmhainní go sonrach sa Cassandra DBMS, scríofa i Java. Agus comparáid á déanamh ag méadracht phróifílithe dhá phróiseas Cassandra a bhí ar siúl go comhthreomhar ar CentOS agus Ubuntu, agus na ceisteanna céanna á bpróiseáil, léiríodh gur caitheadh ​​thart ar 32% den am iomlán ag glaoch ar os::javaTimeMillis(), a úsáidtear chun faisnéis a fháil faoin am reatha .

Ina dhiaidh seo, rinneadh turgnamh inar scríobhadh feidhmchlár simplí Java ar a dtugtar an modh System.currentTimeMillis() céad milliún uair i lúb. Léirigh rith an fheidhmchláir gur thóg sé 13 soicind é a chríochnú ar CentOS, agus thart ar 68 soicind ar Ubuntu, i.e. 5 huaire níos moille. Scríobhadh clár comhchosúil in C ar a dtugtar an fheidhm gettimeofday() céad milliún uair, ach nuair a rinneadh é, fuarthas torthaí comhchosúla.

Ós rud é gur tháinig sé soiléir gurb é foinse na faidhbe an fheidhm a bhaineann leis an am reatha a thabhairt ar ais, d'iompaigh aird ar athruithe ar tháscairí nuair a bhí foinsí éagsúla ama cruinn á roghnú sa chóras. Ag déanamh breithiúnas ar a bhfuil in “/ sys/devices/system/clocksource/clocksource0/current_clocksource,” baineadh úsáid as an lasc ama “xen” de réir réamhshocraithe agus Linux á rith sa chóras aoi. Tar éis an fhoinse ama a athrú go “tsc”, laghdaigh am forghníomhaithe an iarratais tástála in Ubuntu ó 68 go 3.3 soicind, i.e. d'éirigh sé 20 uair níos tapúla. Ina theannta sin, rinneadh tástáil feidhmíochta ar an bhfoinse ama kvm-clog, a léirigh méadú 20% ar mhoilleanna i gcomparáid le TSC. $ cat /sys/devices/system/clocksource/clocksource0/available_clocksource xen tsc hpet acpi_pm $ cat /sys/devices/system/clocksource/clocksource0/current_clocksource xen $ am java TimeBench fíor 1m8.300s úsáideoir 0m38.337s sys 0m29.875. macalla tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource $ time java TimeBench fíor 0m3.370s úsáideoir 0m3.353s sys 0m0.026s

Chun an t-am a fháil nuair a roghnaítear foinse TSC, úsáidtear an treoir próiseálaí RDTSC, nach gá glao córais a chur i gcrích (ní éilíonn an treoir pribhléidí ardaithe agus táirgeann sé luach ón gcuntar ama atá ionsuite sa LAP). De réir réamhshocraithe, ní chuirtear TSC i ngníomh mar gheall ar na seanlaethanta níor chuir an fhoinse seo as an áireamh sruth ama de réir a chéile, a choigeartaítear i bpróiseálaithe eile le bogearraí chun léamha níos cruinne a bhaint amach. Dar le hinnealtóir atá ag speisialú i bhforbairt próiseálaí, is fada an scéal go bhfuil faitíos ar athruithe ama agus TSC á n-úsáid agus i bpróiseálaithe nua-aimseartha is féidir leis an bhfoinse seo léamha cobhsaí a tháirgeadh ar feadh na mblianta.

Mar thoradh ar fhreastalaithe táirgthe ag Netflix a aistriú go foinse TSC, tháinig laghdú 43% ar latency scríofa agus baineadh torthaí amach ag baint úsáide as Ubuntu a bhí 4 huaire níos tapúla ná cumraíochtaí ag rith CentOS le foinse ama “xen”. Aistríodh torthaí an staidéir chuig Amazon, a mhol go hoifigiúil go n-úsáidfí an fhoinse ama réamhshocraithe TSC i dtimpeallachtaí AWS EC2 bunaithe ar an hypervisor Xen (moltar fós kvm-clock i dtimpeallachtaí atá bunaithe ar an hypervisor Nitro).

Foinse: oscailtenet.ru

Add a comment