Analysis perficiendi impulsum temporis principium in systemate selecta

Brendan Gregg, unus e e e e dTrace, qui nunc BPF-fundatur in analysi instrumentorum in nucleo Linux explicans, experientiam compendiose quaesitam ex solvendis quaestionibus faciendis quae Netflix offendit cum Cassandram DBMS e Centos ad Ubuntu migrantem. the Amazon EC2 nubes fundata in Diodor. Post migrationem, onus CPU augetur per 30% et morae in scribendo operationes augentur circa tantundem. Sicut evenit, effectus applicationes qui intensive petunt, temporis informationes valde pendent a fonte exacto temporis in systemate selecto.

In primis, causa decrementi in effectu non fuit manifesta et diagnosis incepit cum vigilantia ictum possibilem assidue currentis vel periodice intensa processuum systematis subsidiorum intensivarum utilitatum et execsnooporum utentium. Sed omnia significaverunt consumptionem resource auctam specie in Cassandra DBMS, scripta in Java. Profilingas metricas duorum Cassandrae processuum parallelarum in CentOS et Ubuntu comparans, easdem interrogationes dispensando, ostendit circiter 32% totius temporis consumptum esse voca- tionem os::javaTimeMillis(), quae ad informationem de tempore praesenti habere solebat. .

Post hoc experimentum factum est quo simplex Java applicationis conscriptum est quod System.currentTimeMillis() methodum centum decies centena milia temporum in ansa conscripsit. Cursor applicationis ostendit quod 13 secundis ad CentOS perficiendum sumpsit, et circa 68 seconds in Ubuntu, i.e. V temporibus tardius. Similis programma in C conscripta est, quae centies milies centena millia vocata () munus habet, sed cum exsecutioni mandatur, similes eventus consecuti sunt.

Cum patefactum est fontem quaestionis esse munus reddendi temporis hodierni, attentio convertitur ad commutationes in indicibus cum diversos fontes temporis in systemate eligendo. Iudicans per contenta "/sys/machinis/ systematis/clocksource/clocksource/0/current_clocksource"), "xen" timor adhibitum est per defaltam cum Linux in systemate hospitis currit. Post tempus principium ad "tsc" mutato, tempus exsecutionis applicationis in Ubuntu decrevit ab 68 ad 3.3 secundis, i.e. XX temporibus velocius factum est. Accedit probatio perficiendi horologii originis temporis peractae, quae incrementum morarum per 20% TSC comparatum ostendit. $ cat /sys/machinis/system/clocksource/clocksource20/available_clocksource xen tsc hpet acpi_pm $ cat /sys/machinis/system/clocksource/clocksource0/current_clocksource xen $ time java TimeBench real 0m1s user 8.300m0s sys 38.337m0s $ resonare tsc > /sys/machinas/system/clocksource/clocksource29.875/current_clocksource $ time java TimeBench real 0m0s user 3.370m0s sys 3.353m0s

Ad tempus quo TSC fontem deligentur, processus RDTSC instructio adhibetur, cuius exsecutio vocationis systematis non indiget (instructio privilegia elevata non requirit et valorem a tempore calculo in CPU aedificatum producit). Defalta, TSC non reducitur quia in antiquis diebus fons hic gradatim temporis egisse non excludit, quod in aliis processibus per programmatum ad accuratiores lectiones assequendum accommodatur. Secundum ingeniarium specialiter in processu evolutionis timet circa vices temporis cum usus TSC diu falsum est et in hodiernis processibus hic fons per annos lectiones stabiles producere potest.

Commutatio productionis ministrantium in Netflix ad fontem TSC consecuta est 43% reductione in latency scribendo et effectis eventibus utens Ubuntu qui ocius erant 4 temporibus quam figurationes CentOS cum "xen" temporis fonte currens. Eventus studii ad Amazonem translati sunt, qui utens defectu TSC temporis fonte in AWS EC2 publice commendatur in ambitibus hypervisoris Xen (manet kvm-clock commendatum in ambitibus hypervisoris Nitro).

Source: opennet.ru