Ghi log tốn bao nhiêu
Thư viện log của Python tốn 4.467 ns một dòng — gấp 53 lần tự định dạng rồi write. Go và Node rẻ hơn 8 lần.
Thư viện log của Python tốn 4.467 ns một dòng — gấp 53 lần tự định dạng rồi write. Go và Node rẻ hơn 8 lần.
Năm cách ghi cùng một dòng log trong Python, đo trên máy thật: khoảng cách 25 lần giữa print và logging, và khi bóc tách thì định dạng thời gian chỉ chiếm 17% — 94% chi phí biến vào bộ khung dựng LogRecord. Kèm hai phát hiện: lời gọi bị lọc bỏ rẻ tới 82 lần, nhưng chỉ khi bạn không dùng f-string.
JSON to hơn 50% khi chưa nén và chỉ 6% sau khi nén. Nhưng grep trên log chữ nhanh gấp 19 lần jq.
Lấy mẫu 1/10 làm p99 sập từ 414,9 xuống 119,9 ms — sai 71%, và sai đều ở cả ba lần đo.
Bốn con số bộ nhớ cho một container, chênh nhau 34 lần, tất cả đều đúng vì chúng trả lời những câu hỏi khác nhau. memory.current 413 Mi gồm 400 Mi bộ đệm tệp mà kernel vứt trong tích tắc; working_set chỉ 13 Mi mới là phần OOM killer nhìn vào. Đây là nguồn của phần lớn báo động giả 'rò bộ nhớ'. Thêm: kubectl top chậm hơn thực tế 30 giây và lặp lại y hệt mẫu cũ — nó không đo, chỉ đọc lại mẫu gần nhất, nên một đợt tải ngắn hơn 15 giây có thể không lọt vào mẫu nào.
Đo chi phí thật của bốn cách gọi log (nhanh chậm 20 lần), so log văn bản với JSON, và ba lăng kính quan sát — log, chỉ số, truy vết — mà thiếu một cái là mù một nửa khi hệ thống hỏng.