ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคึผืจืึทืœ ืคื•ืŸ ื“ื™ ืฆื™ื™ื˜ ืžืงื•ืจ ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื

Brendan Gregg, ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืคื•ืŸ DTrace, ื•ื•ืึธืก ืื™ื– ืื™ืฆื˜ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ BPF-ื‘ืื–ื™ืจื˜ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืึทื ืึทืœื™ืกื™ืก ืžื›ืฉื™ืจื™ื ืื™ืŸ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ, ืกืึทืžืขืจื™ื™ื–ื“ ื“ื™ ื“ืขืจืคืึทืจื•ื ื’ ืคื•ืŸ ืึทื ืึทืœื™ื™ื–ื™ื ื’ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคึผืจืึธื‘ืœืขืžืก ื•ื•ืึธืก Netflix ื’ืขืคึผืœืึธื ื˜ืขืจื˜ ื•ื•ืขืŸ ืžื™ื™ื’ืจื™ื™ื˜ื™ื ื’ ื“ื™ Cassandra DBMS ืคึฟื•ืŸ CentOS ืฆื• Ubuntu. ื“ื™ Amazon EC2 ื•ื•ืึธืœืงืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ Xen. ื ืึธืš ืžื™ื™ื’ืจื™ื™ืฉืึทืŸ, ื“ื™ ืงืคึผื• ืžืึทืกืข ื’ืขื•ื•ืืงืกืŸ ืžื™ื˜ 30% ืื•ืŸ ื“ื™ ื“ื™ืœื™ื™ื– ื‘ืขืฉืึทืก ืฉืจื™ื™ึทื‘ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื’ืขื•ื•ืืงืกืŸ ืžื™ื˜ ื•ื•ืขื’ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืกื•ืžืข. ื•ื•ื™ ืขืก ื˜ื•ืจื ืก ืื•ื™ืก, ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื™ื ื˜ืขื ืกื™ื•ื•ืœื™ ื‘ืขื˜ืŸ ืฆื™ื™ื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื“ืขืคึผืขื ื“ืก ืื•ื™ืฃ ื“ื™ ืคึผื™ื ื˜ืœืขืš ืฆื™ื™ื˜ ืžืงื•ืจ ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื.

ืื™ืŸ ืขืจืฉื˜ืขืจ, ื“ื™ ืกื™ื‘ื” ืคึฟืึทืจ ื“ื™ ืคืึทืจืงืœืขื ืขืจืŸ ืื™ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื™ื– ื ื™ืฉื˜ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืื•ืŸ ื“ื™ ื“ื™ืึทื’ื ืึธืกื™ืก ืื ื’ืขื”ื•ื™ื‘ืŸ ืžื™ื˜ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ื“ื™ ืžืขื’ืœืขืš ืคึผืจืึทืœ ืคื•ืŸ ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืคืœื™ืกื ื“ื™ืง ืึธื“ืขืจ ืคึผื™ืจื™ืึทื“ื™ืงืœื™ ืœืึธื ื˜ืฉื˜ ืžื™ื˜ืœ-ืื™ื ื˜ืขื ืกื™ื•ื•ืข ืกื™ืกื˜ืขื ืคึผืจืึทืกืขืกืึทื– ืžื™ื˜ ื“ื™ ืฉืคึผื™ืฅ ืื•ืŸ ืขืงืกืขืกื ืึธืึธืคึผ ื™ื•ื˜ื™ืœืึทื˜ื™ื–. ืึธื‘ืขืจ ืึทืœืฅ ื”ืึธื˜ ืึธื ื’ืขื•ื•ื™ื–ืŸ ืึทื– ื“ื™ ืžื™ื˜ืœ ืงืึทื ืกืึทืžืฉืึทืŸ ืื™ื– ืกืคึผืึทืกื™ืคื™ืงืœื™ ื’ืขื•ื•ืืงืกืŸ ืื™ืŸ ื“ื™ Cassandra DBMS, ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ Java. ืงืึทืžืคึผืขืจื™ื ื’ ื“ื™ ืคึผืจืึธืคื™ืœื™ื ื’ ืžืขื˜ืจื™ืงืก ืคื•ืŸ ืฆื•ื•ื™ื™ ืงืึทืกืกืึทื ื“ืจืึท ืคึผืจืึทืกืขืกืึทื– ืคืœื™ืกื ื“ื™ืง ืื™ืŸ ืคึผืึทืจืึทืœืขืœ ืื•ื™ืฃ CentOS ืื•ืŸ Ubuntu, ืคึผืจืึทืกืขืกื™ื ื’ ื“ื™ ื–ืขืœื‘ืข ืคึฟืจืื’ืŸ, ื’ืขื•ื•ื™ื–ืŸ ืึทื– ื•ื•ืขื’ืŸ 32% ืคื•ืŸ ื“ื™ ื’ืึทื ืฅ ืฆื™ื™ื˜ ืื™ื– ืคืืจื‘ืจืื›ื˜ ืฆื• ืจื•ืคืŸ os :: javaTimeMillis (), ื•ื•ืึธืก ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ืงืจืึทื ื˜ ืฆื™ื™ื˜. .

ื ืืš ื“ืขื ืื™ื– ื“ื•ืจื›ื’ืขืคื™ืจื˜ ื’ืขื•ื•ืืจืŸ ืืŸ ืขืงืกืคืขืจื™ืžืขื ื˜ ืื™ืŸ ื•ื•ืขืœื›ืข ืžืขืŸ ื”ืื˜ ื’ืขืฉืจื™ื‘ืŸ ื ืคืฉื•ื˜ืข ื–'ืื‘ื ืืคืœื™ืงืืฆื™ืข ื•ื•ืืก ื”ืื˜ ื’ืขืจื•ืคืŸ ื“ื™ System.currentTimeMillis() ืžืขื˜ืื“ ื”ื•ื ื“ืขืจื˜ ืžื™ืœื™ืืŸ ืžืืœ ืื™ืŸ ื ืฉืœื™ื™ืฃ. ืคืœื™ืกื ื“ื™ืง ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื’ืขื•ื•ื™ื–ืŸ ืึทื– ืขืก ื’ืขื ื•ืžืขืŸ 13 ืกืขืงื•ื ื“ืขืก ืฆื• ืคืึทืจืขื ื“ื™ืงืŸ ืื•ื™ืฃ CentOS, ืื•ืŸ ื•ื•ืขื’ืŸ 68 ืกืขืงื•ื ื“ืขืก ืื•ื™ืฃ ื•ื‘ื•ื ื˜ื•, ื“"ื”. 5 ืžืืœ ืกืœืึธื•ืขืจ. ื ืขื ืœื™ื›ืข ืคืจืื’ืจืื ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ C, ื•ื•ืืก ื”ืื˜ ื’ืขืจื•ืคืŸ ื“ื™ gettimeofday() ืคึฟื•ื ืงืฆื™ืข ื”ื•ื ื“ืขืจื˜ ืžื™ืœื™ืืŸ ืžืืœ, ืื‘ืขืจ ื•ื•ืขืŸ ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“, ืขื ืœืขืš ืจืขื–ื•ืœื˜ืึทื˜ืŸ ื–ืขื ืขืŸ ื‘ืืงื•ืžืขืŸ.

ื–ื™ื ื˜ ืขืก ืื™ื– ื’ืขื•ื•ืืจืŸ ืงืœืึธืจ ืึทื– ื“ืขืจ ืžืงื•ืจ ืคื•ืŸ ื“ื™ ืคึผืจืึธื‘ืœืขื ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื™ ืคึฟื•ื ืงืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืฆื•ืจื™ืงืงื•ืžืขืŸ ื“ื™ ืงืจืึทื ื˜ ืฆื™ื™ื˜, ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ื˜ ื•ื•ืขื ื“ืŸ ืฆื• ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื™ื ื“ื™ืงืึทื˜ืึธืจืก ื•ื•ืขืŸ ื˜ืฉื•ื–ื™ื ื’ ืคืึทืจืฉื™ื“ืขื ืข ืงื•ื•ืืœืŸ ืคื•ืŸ ืคึผื™ื ื˜ืœืขืš ืฆื™ื™ื˜ ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื. ืื•ื™ื‘ ืžืฉืคื˜ืŸ ืœื•ื™ื˜ ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ "/sys/devices/system/clocksource/clocksource0/current_clocksource", ื“ื™ "ืงืกืขืŸ" ื˜ื™ื™ึทืžืขืจ ืื™ื– ื’ืขื ื™ืฆื˜ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ื•ื•ืขืŸ ืคืœื™ืกื ื“ื™ืง ืœื™ื ื•ืงืก ืื™ืŸ ื“ื™ ื’ืึทืกื˜ ืกื™ืกื˜ืขื. ื ืึธืš ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ืฆื™ื™ื˜ ืžืงื•ืจ ืฆื• "tsc", ื“ื™ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืฆื™ื™ื˜ ืคื•ืŸ ื“ื™ ืคึผืจืึธื‘ืข ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ ื•ื‘ื•ื ื˜ื• ื“ื™ืงืจื™ืกื˜ ืคื•ืŸ 68 ืฆื• 3.3 ืกืขืงื•ื ื“ืขืก, ื“.ื”. ืขืก ืื™ื– ื’ืขื•ื•ืืจืŸ 20 ืžืืœ ืคืึทืกื˜ืขืจ. ืื™ืŸ ื“ืขืจืฆื•, ืึท ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคึผืจืึธื‘ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืงื•ื•ื™ื-ื–ื™ื™ื’ืขืจ ืฆื™ื™ื˜ ืžืงื•ืจ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜, ื•ื•ืึธืก ื’ืขื•ื•ื™ื–ืŸ ืึท ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ืŸ ื“ื™ืœื™ื™ื– ืžื™ื˜ 20% ืงืึทืžืคึผืขืจื“ ืฆื• TSC. $ cat /sys/devices/system/clocksource/clocksource0/available_clocksource xen tsc hpet acpi_pm $ cat /sys/devices/system/clocksource/clocksource0/current_clocksource xen $ ืฆื™ื™ื˜ ื“ื–ืฉืึทื•ื•ืึท ื˜ื™ืžืขื‘ืขื ื˜ืฉ ืคืึทืงื˜ื™ืฉ 1m8.300s ื‘ืึทื ื™ืฆืขืจ 0m38.337s $0s29.875 echo tsc> /sys/devices/system/clocksource/clocksource0/current_clocksource $ ืฆื™ื™ื˜ ื“ื–ืฉืึทื•ื•ืึท ื˜ื™ืžืขื‘ืขื ื˜ืฉ ืคืึทืงื˜ื™ืฉ 0m3.370s ื‘ืึทื ื™ืฆืขืจ 0m3.353s sys 0m0.026s

ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืฆื™ื™ื˜ ื•ื•ืขืŸ ืกืขืœื™ื ื’ ืึท TSC ืžืงื•ืจ, ื“ื™ RDTSC ืคึผืจืึทืกืขืกืขืจ ืœื™ืžืขื“ ืื™ื– ื’ืขื ื™ืฆื˜, ื“ื™ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ื•ื•ืึธืก ื˜ื•ื˜ ื ื™ืฉื˜ ื“ืึทืจืคืŸ ืึท ืกื™ืกื˜ืขื ืจื•ืคืŸ (ื“ื™ ืœื™ืžืขื“ ื˜ื•ื˜ ื ื™ืฉื˜ ื“ืึทืจืคืŸ ืขืœืขื•ื•ืึทื˜ืขื“ ืคึผืจื™ื•ื•ื™ืœืึทื“ื–ืฉืึทื– ืื•ืŸ ื˜ืจืื’ื˜ ืึท ื•ื•ืขืจื˜ ืคื•ืŸ ื“ื™ ืฆื™ื™ื˜ ื˜ืึธืžื‘ืึทื ืง ื’ืขื‘ื•ื™ื˜ ืื™ืŸ ื“ื™ ืงืคึผื•). ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, TSC ืื™ื– ื ื™ืฉื˜ ืึทืงื˜ื™ื•ื•ื™ื™ื˜ื™ื“ ื•ื•ื™ื™ึทืœ ืื™ืŸ ื“ื™ ืึทืœื˜ ื˜ืขื’ ื“ืขื ืžืงื•ืจ ื”ืื˜ ื ื™ืฉื˜ ื•ื™ืกืฉืœื™ืกืŸ ื’ืจืึทื“ื–ืฉื•ืึทืœ ืฆื™ื™ื˜ ื“ืจื™ืคื˜, ื•ื•ืึธืก ืื™ืŸ ืื ื“ืขืจืข ืคึผืจืึทืกืขืกืขืจื– ืื™ื– ืึทื“ื–ืฉืึทืกื˜ื™ื“ ื“ื•ืจืš ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ืžืขืจ ืคึผื™ื ื˜ืœืขืš ืจื™ื“ื™ื ื’ื–. ืœื•ื™ื˜ ืึทืŸ ื™ื ื–ืฉืขื ื™ืจ ื•ื•ืึธืก ืกืคึผืขืฉืึทืœื™ื™ื–ื™ื– ืื™ืŸ ืคึผืจืึทืกืขืกืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ื“ื™ ืคื™ืจื– ื•ื•ืขื’ืŸ ืฆื™ื™ื˜ ืฉื™ืคืฅ ื•ื•ืขืŸ ื ื™ืฆืŸ TSC ื”ืึธื‘ืŸ ืœืึทื ื’ ืฉื•ื™ืŸ ืึทื ื˜ืจื• ืื•ืŸ ืื™ืŸ ืžืึธื“ืขืจืŸ ืคึผืจืึทืกืขืกืขืจื– ื“ืขืจ ืžืงื•ืจ ืงืขื ืขืŸ ืคึผืจืึธื“ื•ืฆื™ืจืŸ ืกื˜ืึทื‘ื™ืœ ืจื™ื“ื™ื ื’ื– ืคึฟืึทืจ ื™ืึธืจืŸ.

ืกื•ื•ื™ื˜ืฉื™ื ื’ ืคึผืจืึธื“ื•ืงืฆื™ืข ืกืขืจื•ื•ืขืจืก ืื™ืŸ Netflix ืฆื• ืึท TSC ืžืงื•ืจ ืจื™ื–ืึทืœื˜ื™ื“ ืื™ืŸ ืึท 43% ืจืขื“ื•ืงืฆื™ืข ืื™ืŸ ืฉืจื™ื™ึทื‘ืŸ ืœื™ื™ื˜ืึทื ืกื™ ืื•ืŸ ืึทื˜ืฉื™ื•ื•ื“ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืžื™ื˜ ื•ื‘ื•ื ื˜ื• ื•ื•ืึธืก ื–ืขื ืขืŸ 4 ืžืืœ ืคืึทืกื˜ืขืจ ื•ื•ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื– ืคืœื™ืกื ื“ื™ืง CentOS ืžื™ื˜ ืึท "ืงืกืขืŸ" ืฆื™ื™ื˜ ืžืงื•ืจ. ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ ื“ื™ ืœืขืจื ืขืŸ ื–ืขื ืขืŸ ื˜ืจืึทื ืกืคืขืจื“ ืฆื• ืึทืžืึทื–ืึธืŸ, ื•ื•ืึธืก ืึทืคื™ืฉืึทืœื™ ืจืขืงืึทืžืขื ื“ื™ื“ ืฆื• ื ื•ืฆืŸ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ TSC ืฆื™ื™ื˜ ืžืงื•ืจ ืื™ืŸ AWS EC2 ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ Xen ื›ื™ื™ืคึผืขืจื•ื•ื™ื™ื–ืขืจ (ืงื•ื•ื-ื–ื™ื™ื’ืขืจ ืื™ื– ืจืขืงืึทืžืขื ื“ื™ื“ ืื™ืŸ ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื ื™ื˜ืจืึธ ื›ื™ื™ืคึผืขืจื•ื•ื™ื™ื–ืขืจ).

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’