Chi phí của strace
Mỗi syscall dưới strace tốn ~80 micro giây thay vì 126 nano giây — chậm 630 lần. Nên mọi số đo thời gian dưới strace đều sai. Chính công cụ đo suốt sê-ri này là kẻ nói dối lớn nhất về thời gian. Đo thật.
Mỗi syscall dưới strace tốn ~80 micro giây thay vì 126 nano giây — chậm 630 lần. Nên mọi số đo thời gian dưới strace đều sai. Chính công cụ đo suốt sê-ri này là kẻ nói dối lớn nhất về thời gian. Đo thật.
Định đo cache-miss và branch-miss bằng perf, nhưng máy ảo không lộ PMU nên perf trả <not supported>. Phải quay về đồng hồ — nó vẫn lộ hiệu ứng cache chậm 200 lần. Đo thật.
Bộ đếm atomic nhanh hơn mutex 3 lần — nhưng nó KHÔNG scale: thông lượng tụt khi thêm luồng, vì dòng cache nảy giữa các nhân. Cách scale thật là không chia sẻ. Đo thật.
Ghi vào trang chỉ đọc gây SIGSEGV — nhưng cùng cái bẫy phần cứng đó, sau fork kernel lại lặng lẽ copy trang chứ không giết tiến trình. Đo thật trong container.
fork một tiến trình 256MB chỉ tốn 133 micro giây, không phải chục mili giây — vì COW nhân bảng trang chứ không copy dữ liệu. Và mọi thứ vừa nhân bị exec vứt sạch. Đo thật trong container.
Giết PID tiến trình cha không giết được các con — chúng thành mồ côi và chạy tiếp. Muốn hạ cả cụm phải nhắm nhóm tiến trình: kill(-pgid) một phát hạ tất. Đo thật trong container.