Linux: bộ nhớ là miễn phí nhưng trao đổi được sử dụng. Tại sao?


11

Dưới đây là sơ đồ của Munin.

Sử dụng bộ nhớ: http://koryagin.com/w/q/memory-day.png

Trao đổi vào / ra: http://koryagin.com/w/q/swap-day.png

Tại sao Linux quyết định tăng bộ nhớ cache và sử dụng trao đổi khi kích thước RAM lớn hơn nhiều so với bộ nhớ được sử dụng bởi các chương trình?


2
Hệ thống con linux VM trong vài năm qua đã được điều chỉnh rất nhiều để ưu tiên không gian bộ đệm và không gian bộ đệm; các ứng dụng chiếm bộ nhớ nhưng không làm gì sẽ bị xáo trộn vào đĩa. Điều này làm tăng khả năng phản hồi và hiệu suất. Trừ khi bạn nhìn thấy các vấn đề về hiệu suất, bạn thực sự không cần phải lo lắng về nó.
Bart Silverstrim

Câu trả lời:


17

Máy chủ của bạn có thể có một số quy trình ăn bộ nhớ và / hoặc không hoạt động có nhiều trang không hoạt động. Nhân Linux thích trao đổi các phần chương trình không hoạt động để trao đổi vì rất có thể bộ nhớ được sử dụng tốt hơn làm bộ đệm.

Nếu bạn muốn thay đổi hành vi này, hãy chơi với vm.swappinesssysctl có thể điều chỉnh nhưng được cảnh báo, việc vượt qua các nhà phát triển kernel / người bảo trì phân phối là không dễ dàng. :-)

Bạn có gặp vấn đề về hiệu suất trên máy chủ của mình trong quá trình hoán đổi đó không hoặc bạn có tò mò không?


Tôi không có vấn đề về hiệu suất tại máy chủ cụ thể này. Nhưng ở một tình huống khác, khi tình hình không quá rõ ràng, tôi đang nghĩ phải làm gì. Một số logic quản lý bộ nhớ Linux có thể là lý do cho các phân tách PHP-FPM, nếu chúng không khớp với bất kỳ vấn đề PHP nào đã biết? Vì vậy, nói chung là ủng hộ sự tò mò.
Pavel Koryagin

BTW, máy chủ này xử lý mạnh một lượng dữ liệu rất nhỏ với một tập lệnh cố định, do đó nó không nên có I / O chuyên sâu. Vậy tại sao Linux muốn có bộ nhớ cache lớn như vậy?
Pavel Koryagin

Linux lưu trữ rất nhiều tệp, siêu dữ liệu tệp, mục nhập thư mục, v.v. Hãy thử lệnh slabtop.
Janne Pikkarainen

Cảm ơn rất nhiều. Sẽ mất một lúc để hiểu phải làm gì với slabtopthông tin.
Pavel Koryagin

Hãy để nó chạy toàn màn hình khi sếp của bạn đi ngang qua tủ của bạn và biến mình thành một bậc thầy trong mắt anh ấy / cô ấy. :-) Một lệnh "ooh, điều đó chắc chắn có vẻ khó hiểu" khác là systat -vmstattrong FreeBSD (có lẽ các BSD khác cũng vậy).
Janne Pikkarainen

1

Bạn nên cố gắng chơi với tham số swappiness . Như bạn có thể thấy hệ thống của bạn bắt đầu trao đổi khi nó cố gắng tăng kích thước bộ đệm của tệp, điều này là bình thường nếu swappines không bằng 0.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.