ืืจื ืื ืืจื, ืืื ืืืคืชืื DTrace, ืฉืืคืชื ืืขืช ืืื ื ืืชืื ืืืฆืืขืื ืืืืกืกื BPF ืืืืืช ืืื ืืงืก, ืกืืื ืืช ืื ืืกืืื ืฉื ืฆืืจ ืื ืืชืื ืืขืืืช ืืืืฆืืขืื ืืื ื ืชืงืื ื ืืคืืืงืก ืืขืช ืืขืืจืช ื- Cassandra DBMS ืืกืืืืืช CentOS ืืืืืื ืื. ืขื ื ืืืืื EC2 ืืืืืกืก ืขื Xen. ืืืืจ ืืืืืจื, ืขืืืก ืืืขืื ืืื ื-30% ืืืขืืืืืื ืืืืื ืคืขืืืืช ืืืชืืื ืืืื ืืขืจื ืืืืชื ืืืืช. ืืคื ืฉืืชืืจืจ, ืืืืฆืืขืื ืฉื ืืคืืืงืฆืืืช ืืืืงืฉืืช ืืืืข ืืื ืืื ืื ืกืืื ืชืืื ืืืื ืืืงืืจ ืืืื ืืืืืืง ืฉื ืืืจ ืืืขืจืืช.
ืืชืืืื, ืืกืืื ืืืจืืื ืืืืฆืืขืื ืื ืืืืชื ืืจืืจื ืืืืืืื ืืื ืื ืืืืจ ืืืฉืคืขื ืืืคืฉืจืืช ืฉื ืชืืืืื ืืขืจืืช ืขืชืืจื ืืฉืืืื ืฉืคืืขืืื ืืืืคื ืงืืืข ืื ืืืฉืงืื ืืขืช ืืขืช ืชืื ืฉืืืืฉ ืืืื ืืฉืืจืืช ืืืืืืืื ื-execsnoop. ืืื ืืื ืืฆืืืข ืขื ืื ืฉืฆืจืืืช ืืืฉืืืื ืขืืชื ืืืืืื ื- Cassandra DBMS, ืฉื ืืชื ืื'ืืืื. ืืฉืืืืช ืืืื ืืคืจืืคืื ืฉื ืฉื ื ืชืืืืื Cassandra ืืคืืขืืื ืืืงืืื ื-CentOS ืื-Ubuntu, ืชืื ืขืืืื ืืืชื ืฉืืืืชืืช, ืืจืืชื ืฉื-32% ืืืืื ืืืืื ืืืฉืงืข ืืงืจืืืช os::javaTimeMillis(), ืืืฉืืฉืช ืืืฉืืช ืืืืข ืขื ืืฉืขื ืื ืืืืืช. .
ืืืืจ ืืื, ื ืขืจื ื ืืกืื ืื ื ืืชืื ืืคืืืงืฆืืืช Java ืคืฉืืื ืฉื ืงืจืืช ืฉืืืช System.currentTimeMillis() ืืื ืืืืืื ืคืขืืื ืืืืืื. ืืคืขืืช ืืืคืืืงืฆืื ืืจืืชื ืฉืืืงื 13 ืฉื ืืืช ืืืฉืืื ื-CentOS, ืื-68 ืฉื ืืืช ืืืืืื ืื, ืืืืืจ. ืคื 5 ืืืชืจ ืืืื. ืชืืื ืืช ืืืื ื ืืชืื ื-C ืฉืงืจืื ืืคืื ืงืฆืื gettimeofday() ืืื ืืืืืื ืคืขืืื, ืืื ืืฉืืื ืืืฆืขื, ืืชืงืืื ืชืืฆืืืช ืืืืืช.
ืืืืจ ืฉืืชืืจืจ ืฉืืงืืจ ืืืขืื ืืื ืืคืื ืงืฆืื ืฉื ืืืืจืช ืืฉืขื ืื ืืืืืช, ืชืฉืืืช ืืื ืืืคื ืชื ืืฉืื ืืืื ืืืื ืืืงืืืจืื ืืขืช ืืืืจืช ืืงืืจืืช ืฉืื ืื ืฉื ืืื ืืืืืง ืืืขืจืืช. ืื ืืฉืคืื ืืคื ืืชืืื ืฉื "/sys/devices/system/clocksource/clocksource0/current_clocksource", ืืืืืจ "xen" ืฉืืืฉ ืืืจืืจืช ืืืื ืืขืช ืืคืขืืช ืืื ืืงืก ืืืขืจืืช ืืืืจืืช. ืืืืจ ืฉืื ืื ืืงืืจ ืืืื ื-"tsc", ืืื ืืืืฆืืข ืฉื ืืคืืืงืฆืืืช ืืืืืงื ืืืืืื ืื ืืจื ื-68 ื-3.3 ืฉื ืืืช, ืืืืืจ. ืื ืืคื ืืืืืช ืืืืจ ืคื 20. ืื ืืกืฃ, ืืืฆืขื ืืืืงืช ืืืฆืืขืื ืฉื ืืงืืจ ืืืื kvm-clock, ืฉืืจืืชื ืขืืืื ืืขืืืืืื ื-20% ืืืฉืืืื ื-TSC. $ cat /sys/devices/system/clocksource/clocksource0/available_clocksource xen tsc hpet acpi_pm $ cat /sys/devices/system/clocksource/clocksource0/current_clocksource xen $ ืืื java TimeBench real 1m8.300s ืืฉืชืืฉ 0m38.337s $0s29.875 echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource $ ืืื java TimeBench real 0m3.370s ืืฉืชืืฉ 0m3.353s sys 0m0.026s
ืืื ืืงืื ืืช ืืืื ืืขืช โโืืืืจืช ืืงืืจ TSC, ื ืขืฉื ืฉืืืืฉ ืืืืจืื ืืืขืื RDTSC, ืืฉืจ ืืืฆืืขื ืืื ื ืืฆืจืื ืงืจืืืช ืืขืจืืช (ืืืืจืื ืืื ื ืืืจืฉืช ืืจืฉืืืช ืืืืืจืืช ืืืคืืงื ืขืจื ืืืื ื ืืืื ืืืืื ื ื-CPU). ืืืจืืจืช ืืืื, TSC ืืื ื ืืืคืขื ืืืืืื ืฉืืืืื ืขืืจื ืืงืืจ ืื ืื ืฉืืื ืกืืฃ ืืื ืืืจืืชื, ืืฉืจ ืืืขืืืื ืืืจืื ืืืชืื ืขื ืืื ืชืืื ื ืืื ืืืฉืื ืงืจืืืืช ืืืืืงืืช ืืืชืจ. ืืืืจื ืืื ืืก ืืืชืืื ืืคืืชืื ืืขืืืื, ืืืฉืฉืืช ืืฉืื ืืื ืืื ืืขืช โโืฉืืืืฉ ื-TSC ืืื ื ื ืืื ืื ืืืื ืืืืขืืืื ืืืืจื ืืื ืืงืืจ ืื ืืืื ืืืืฆืจ ืงืจืืืืช ืืฆืืืืช ืืืฉื ืฉื ืื.
ืืืืคืช ืฉืจืชื ืืืฆืืจ ืื ืืคืืืงืก ืืืงืืจ TSC ืืืื ืืืคืืชื ืฉื 43% ืืืฉืืืืช ืืืชืืื ืืืฉืื ืชืืฆืืืช ืืืืฆืขืืช ืืืืื ืื ืฉืืื ืืืืจืืช ืคื 4 ืืชืฆืืจืืช ืืืจืืฆืืช CentOS ืขื ืืงืืจ ืืื "xen". ืชืืฆืืืช ืืืืงืจ ืืืขืืจื ืืืืืื, ืืฉืจ ืืืืืฆื ืจืฉืืืช ืืืฉืชืืฉ ืืืงืืจ ืืจืืจืช ืืืืื ืฉื TSC ืืื ืืกืืืืืช AWS EC2 ืืืืืกืกืืช ืขื ื-Xen hypervisor (kvm-clock ื ืฉืืจ ืืืืืฅ ืืกืืืืืช ืืืืืกืกืืช ืขื Nitro hypervisor).
ืืงืืจ: OpenNet.ru