Tôi có một ứng dụng java chạy trên máy chủ Linux với bộ nhớ vật lý (RAM) được phân bổ là 12GB, nơi tôi sẽ thấy việc sử dụng bình thường trong một khoảng thời gian như bên dưới.
sys> miễn phí -h
tổng số buff/bộ đệm được chia sẻ miễn phí đã sử dụng hiện có
Bộ nhớ: 11G 7.8G 1.6G 9.0M 2.2G 3.5G
Hoán đổi: 0B 0B 0B
Gần đây, khi tăng tải ứng dụng, tôi có thể thấy mức sử dụng RAM gần đầy và dung lượng khả dụng rất ít, nơi tôi có thể gặp phải tình trạng chậm nhưng ứng dụng vẫn tiếp tục hoạt động tốt.
sys> miễn phí -h
tổng số buff/bộ đệm được chia sẻ miễn phí đã sử dụng hiện có
Ghi nhớ: 11G 11G 134M 17M 411M 240M
Hoán đổi: 0B 0B 0B
sys> miễn phí -h
tổng số buff/bộ đệm được chia sẻ miễn phí đã sử dụng hiện có
Ghi nhớ: 11G 11G 145M 25M 373M 204M
Hoán đổi: 0B 0B 0B
tôi đã đề cập đến https://www.linuxatemyram.com/ nơi nó gợi ý điểm dưới đây.
Dấu hiệu cảnh báo về một tình huống bộ nhớ thấp thực sự mà bạn có thể muốn xem xét:
- bộ nhớ khả dụng (hoặc "free + buffers/cache") gần bằng không
- hoán đổi được sử dụng tăng hoặc dao động.
- dmesg | grep oom-killer hiển thị OutOfMemory-killer đang hoạt động
Từ những điểm trên, tôi không thấy bất kỳ vấn đề OOM nào ở cấp ứng dụng và hoán đổi cũng bị vô hiệu hóa. vì vậy bỏ qua hai điểm. Một điểm làm phiền tôi là bộ nhớ khả dụng nhỏ hơn 0, nơi tôi cần làm rõ
câu hỏi:
- Trong trường hợp khả dụng gần bằng 0, liệu nó có bị Hệ thống treo không?
- Điều đó có nghĩa là tôi cần nâng cấp RAM khi bộ nhớ trống ít hơn?
- Bộ nhớ RAM nên được phân bổ/tăng trên cơ sở nào?
- Chúng tôi có bất kỳ đề xuất/hướng dẫn chính thức nào cần tuân theo để phân bổ bộ nhớ RAM không?