Tại sao ubfox dường như không giải phóng bộ nhớ?


11

Tôi đang làm việc với apache2 + php và các ứng dụng máy chủ web khác.

Tôi có màn hình như phiên kết nối với máy chủ web. Bộ nhớ RAM đã đầy.

Nhưng khi ngắt kết nối một phiên, nó không giải phóng bộ nhớ RAM.

Tôi có màn hình thông qua free -mvà nó hiển thị bộ nhớ chưa được phát hành ngay cả khi không có phiên nào được kết nối.

Có một giải pháp?


Hãy cẩn thận với -m miễn phí. Dòng đầu tiên cho thấy việc sử dụng bộ nhớ bao gồm cả bộ đệm và bộ đệm. Dòng thứ hai hiển thị bộ nhớ đã sử dụng ít bộ đệm và bộ đệm hơn, đây là bộ nhớ khả dụng thực tế. Bạn cũng nên thử một cái gì đó như htopcho mục đích giám sát. Nó là trực quan hơn nhiều và có sẵn trong các repos chính thức. Nếu bạn thực sự hết bộ nhớ, hãy cung cấp cho chúng tôi thêm thông tin như loại ứng dụng web bạn đang chạy, số lượng RAM bạn có, những gì được sử dụng và tất cả. Dán đầu ra của freem và những thứ tương tự.
Johnride

3
Không có giải pháp, bởi vì không có vấn đề. Linux sử dụng RAM có sẵn làm bộ đệm cho các tệp.
Chạy CMD

Nhưng ở đây sau lệnh fire: sudo sync && sudo sysctl -w vm.drop_caches = 3 Nó cho tôi thấy bộ nhớ còn trống miễn phí và ứng dụng cũng hoạt động tốt hơn.
Xe tăng Tejaskumar


Tôi hầu hết đều tuyệt vời với máy chủ VPS và được thành lập gần đây là debian 9.0 hoạt động hoàn hảo với quản lý bộ nhớ.
Xe tăng Tejaskumar

Câu trả lời:


12

Bạn có thể giải phóng bộ nhớ không sử dụng bằng lệnh này:

sudo sync && sudo sysctl -w vm.drop_caches=3

Lệnh này đồng bộ hóa dữ liệu được lưu trong bộ nhớ cache và sau đó ghi tham số HĐH khi chạy, nằm ở / Proc / sys / vm / drop_caches . Tham số này được đọc bởi kernel một lần, sau đó giải phóng bộ nhớ không sử dụng.

Về cơ bản, kernel dự trữ ba phần trong bộ đệm, có thể tăng mức sử dụng bộ nhớ:

  • pagecache
  • răng
  • inodes

Việc ghi vào tham số này sẽ khiến kernel bỏ sạch các trang web, bộ răng và inodes từ RAM, khiến bộ nhớ đó trở nên miễn phí. Có ba giá trị có thể được chỉ định:

  1. vm.drop_caches = 1 pagecaches miễn phí.
  2. vm.drop_caches = 2 nha khoa và inodes miễn phí.
  3. vm.drop_caches = 3 pagecaches, nha khoa và inodes miễn phí.

Quan trọng: Sau khi thực hiện, điều này sẽ trở lại trạng thái bình thường, điều đó có nghĩa là bắt đầu lưu lại bộ nhớ cache, trang phục và inodes. Sử dụng nó tùy thuộc vào cấu hình máy chủ và ứng dụng của bạn.


1
Bạn có thể vui lòng giải thích chi tiết hơn một chút?
AB

Lệnh này chỉ hữu ích khi hàng tuần hoặc hàng ngày vào cuối ngày muốn giải phóng tất cả bộ nhớ không sử dụng, cũng có 3 hoặc 2 hoặc 1 mỗi mục đích khác nhau. Đừng thử điều này trên máy chủ tải phiên.
Xe tăng Tejaskumar

1
Chỉnh sửa câu trả lời của bạn, không phải là nhận xét.
AB

sudo sync & sudo sysctl -w vm.drop_caches=3
Nyxynyx

1
@GuillermoGarcia Sử dụng bash trong Ubuntu 18.04.3. Tôi cần phải bao gồm sudolần thứ hai. Nếu không, tôi nhận được lỗisysctl: permission denied on key 'vm.drop_caches'
Nyxynyx
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.