TL; DR 1
Máy chủ của bạn nằm trong một số loại container virtuozzo / openvz / virtualization-du-jour . Cố gắng làm cho ý nghĩa của việc sử dụng bộ nhớ đang nghiêng về cối xay gió.
TL; DR 2
Linux đã ăn RAM của bạn! Nhưng không sao, nó làm điều đó với mọi người.
Câu chuyện dài
Hãy phá vỡ nó!
Trong Mem:
phần chúng ta có:
$n total
: dung lượng RAM vật lý trong máy của bạn
$n used
: bao nhiêu bộ nhớ đang được Linux tiêu thụ, không chỉ là tổng của các quá trình.
$n free
: Linux không được sử dụng bao nhiêu RAM. Điều này không tính đến việc bộ nhớ đệm và bộ nhớ đệm về bản chất là "miễn phí".
$n buffers
: không gian bộ đệm là nơi các khối I / O của đĩa đã được đọc hoặc đang chờ ghi được lưu trữ. Một bộ đệm là một đại diện RAM của một khối đĩa đơn.
Trong Swap:
phần chúng ta có:
$n total
: Tự giải thích. Số lượng không gian đĩa có sẵn để trao đổi các trang đến.
$n used
: Tự giải thích. Bao nhiêu không gian trao đổi đĩa được sử dụng.
$n free
: HERP derp.
$n cache
: Liên quan chặt chẽ đến bộ đệm ở trên. Nó thực sự là một phần của bộ đệm trang và bản thân nó không có dung lượng trên đĩa vật lý. Đừng lo lắng về các chi tiết cho cuộc trò chuyện này.
Phần thú vị đến khi bạn chạy free -m
. Bạn sẽ thấy ba dòng và tất cả các số sẽ tương quan với đầu. Tôi sẽ lấy PC của mình làm ví dụ:
total used free shared buffers cached
Mem: 8070 7747 323 0 253 5713
-/+ buffers/cache: 1780 6290
Swap: 5055 0 5055
Hàng Mem hiển thị tổng RAM tính bằng megabyte ( $n total
trên cùng), bao nhiêu được sử dụng ( $n used
trên cùng), bao nhiêu là miễn phí ( $n free
trên cùng), bao nhiêu được chia sẻ (bỏ qua điều đó) và bây giờ là phần tốt! Các cột buffers
và cached
các cột free -m
tương quan với, dự đoán $n buffers
và $n cache
. Nhưng hãy nhìn vào hàng thứ hai free -m
bắt đầu bằng -/+ buffers/cache:
. Toán học chỉ ra rằng số tiền được sử dụng là thực sự (tổng cộng) - ((bộ đệm đã sử dụng) -cached). Miễn phí là (tổng cộng) - (the NewUsed).
Tất cả điều này có nghĩa là gì? Nó có nghĩa là Linux đã ăn RAM của bạn! Câu chuyện ngắn là hạt nhân Linux ngấu nghiến RAM vì nó có sẵn để sử dụng cho bộ nhớ đệm đĩa. Không có gì bạn có thể làm về nó trừ khi bạn cảm thấy muốn biên dịch kernel tùy chỉnh. Mẹo chuyên nghiệp: Đừng.
RAM thực sự ở đó và miễn phí cho các quá trình sử dụng theo ý thích của họ. Đó là những gì có nghĩa là -/+ buffers/cache:
hàng trong free -m
. Tuy nhiên, bạn đang ở trong thùng chứa ảo hóa siêu thị giác, điều này khiến mọi thứ hơi khó hiểu. Tại thời điểm này, bạn chỉ đơn giản là không thể lấy bộ nhớ của mình với độ chính xác byte. Tuy nhiên, bạn không thấy bất kỳ hành vi nào quá bất thường.
Giữ bình tĩnh và tiếp tục. Ngoài ra, hãy lấy một máy chủ vật lý (trừ khi bạn thích thống kê bộ nhớ trông giống như Kreskin là SysAdmin của bạn).