Iloiloga o le faʻatinoga o aʻafiaga o le taimi na filifilia i le faiga

O Brendan Gregg, o se tasi o le au atiaʻe o le DTrace, o loʻo atinaʻe nei meafaigaluega faʻataʻitaʻiga faʻatinoga a le BPF i le fatu Linux, na aoteleina le poto masani na maua mai le iloiloina o faʻafitauli o faʻatinoga na feagai ma Netflix ina ua faimalaga le Cassandra DBMS mai CentOS i le Ubuntu. le Amazon EC2 ao faʻavae ile Xen. Ina ua maeʻa femalagaiga, na faʻateleina le uta CPU i le 30% ma o faʻatuai i taimi o galuega tusitusi na faʻateleina e tusa ma le aofaʻi tutusa. E pei ona aliali mai, o le faʻatinoga o talosaga e manaʻomia tele faʻamatalaga taimi e faʻalagolago lava i le taimi tonu na filifilia i le faiga.

I le taimi muamua, o le mafuaʻaga o le faʻaitiitia o le faʻatinoga e leʻi manino ma na amata le suʻesuʻega i le mataʻituina o le aʻafiaga o le faʻaauau pea poʻo le faʻalauiloaina i lea taimi ma lea taimi faiga faʻaoga-malosi e faʻaaoga ai le pito i luga ma le execsnoop utilities. Ae o mea uma na faʻaalia ai o le faʻaaogaina o punaoa ua faʻateleina faʻapitoa i le Cassandra DBMS, tusia i Java. O le faʻatusatusaina o faʻataʻitaʻiga faʻataʻitaʻiga o faiga e lua Cassandra o loʻo faʻagasolo tutusa i CentOS ma Ubuntu, faʻatautaia ia lava fesili, na faʻaalia ai e tusa ma le 32% o le taimi atoa na faʻaalu i le telefoni os :: javaTimeMillis (), lea e faʻaaogaina e maua ai faʻamatalaga e uiga i le taimi nei. .

Ina ua maeʻa, na faia se faʻataʻitaʻiga lea na tusia ai se talosaga Java faigofie e taʻua o le System.currentTimeMillis() metotia e selau miliona taimi i se matasele. O le faʻatinoina o le talosaga na faʻaalia ai na manaʻomia le 13 sekone e faʻamaeʻa ai i CentOS, ma pe a ma le 68 sekone ile Ubuntu, i.e. 5 taimi lemu. O se polokalame talitutusa na tusia i le C lea e taʻua o le gettimeofday() galue i le selau miliona taimi, ae a faʻataunuʻuina, na maua ai faʻaiʻuga tutusa.

Talu ai na manino mai o le mafuaʻaga o le faʻafitauli o le galuega o le toe faʻafoʻiina o le taimi nei, na liliu atu le gauai i suiga i faʻailoga pe a filifilia punaoa eseese o le taimi tonu i le faiga. O le faʻamasinoina o mea o loʻo i totonu o le "/sys/devices/system/clocksource/clocksource0/current_clocksource", o le "xen" timer na faʻaaogaina e ala i le le mafai ona faʻaogaina Linux i le polokalama faʻapitoa. Ina ua uma ona suia le puna taimi i le "tsc", o le taimi o le faatinoga o le suʻega talosaga i le Ubuntu na faʻaititia mai le 68 i le 3.3 sekone, i.e. ua 20 taimi vave. E le gata i lea, o se suʻega faʻatinoga o le kvm-clock time source na faia, lea na faʻaalia ai le faʻatupulaia o le tuai e 20% faʻatusatusa i le 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 moni 1m8.300s tagata faaaoga 0m38.337m0s sy. echo tsc > /sys/devices/system/clocksource/clocksource29.875/current_clocksource $ taimi java TimeBench moni 0m0s tagata fa'aoga 3.370m0s sys 3.353m0s

Ina ia maua le taimi pe a filifilia se puna TSC, e faʻaaogaina le RDTSC processor faʻatonuga, o le faʻatinoga e le manaʻomia ai se telefoni (o le faʻatonuga e le manaʻomia ai avanoa maualuga ma maua ai se tau mai le taimi faʻatulagaina i totonu o le PPU). Ona o le faaletonu, e le o faʻagaoioia le TSC ona o aso tuai e leʻi faʻateʻaina ai e lenei punavai le faʻasolosolo taimi, lea i isi faʻagaioiga e faʻafetaui e le polokalama e maua ai faitauga saʻo. E tusa ai ma se inisinia faʻapitoa i le atinaʻeina o le gaosiga, o popolega e uiga i suiga o taimi pe a faʻaaogaina le TSC ua leva ona le moni ma i faʻaonaponei faʻaonaponei e mafai e lenei punaoa ona maua ni faitauga mautu mo le tele o tausaga.

O le fesuiaʻiina o sapalai gaosiga i Netflix i se puna TSC na mafua ai le 43% faʻaitiitiga i le tusitusi latency ma ausia taunuʻuga e faʻaaoga ai le Ubuntu e 4 taimi sili atu nai lo faʻatonuga o loʻo faʻaogaina CentOS ma se "xen" puna taimi. O taunuʻuga o le suʻesuʻega na tuʻuina atu i le Amazon, lea na fautuaina aloaia e faʻaaoga ai le faʻaogaina ole taimi ole TSC ile AWS EC2 siosiomaga e faʻavae i luga ole Xen hypervisor (kvm-clock e tumau pea le fautuaina i siosiomaga e faʻavae i luga ole Nitro hypervisor).

puna: opennet.ru

Faaopoopo i ai se faamatalaga