Tôi biết những gì nó làm ... Tôi đoán tôi tò mò tại sao nó đang khắc phục một vấn đề trong một ứng dụng mà tôi đã sử dụng. Tôi đã tiếp quản một ứng dụng tomcat khá lớn hoạt động như máy chủ Red5 cho một loạt các máy khách flex và xử lý rất nhiều dữ liệu tương tác thời gian thực, cuối cùng được đưa ra một api rails. Vấn đề đã được tải rất nhiều theo thời gian, số lần trả lời cho các khách hàng này đã tăng lên 3-400 ms trong khi thông thường <100 ms. Khách hàng nghi ngờ đó là vấn đề bộ nhớ mà chúng tôi thực sự không bao giờ có thể xác nhận. Một ngày nọ, một máy chủ dàn dựng tôi đang chạy thử tải trên cơ bản đã ngừng nhận yêu cầu hoặc cực kỳ chậm. Tôi đã gửi
sync && echo 3 > /proc/sys/vm/drop_caches
và kỳ diệu là máy chủ đã hoạt động trở lại và bắt đầu chạy ở tốc độ tối đa phục vụ các kết nối này. Đây có phải là một sự trùng hợp ngẫu nhiên hay hành vi này có ý nghĩa và tại sao?
sync
hoặc echo
. Sau đó thử tìm hiểu tại sao máy chủ chậm trong trường hợp sửa lỗi này (CPU có được tối đa không? IO có tối đa không? Hệ thống có phân trang không?)