Không thể phân bổ bộ nhớ trong khi không có quá trình sử dụng hết bộ nhớ


7

Tôi không đủ năng lực về các vấn đề máy chủ, bất kỳ trợ giúp đều được đánh giá cao. Khi thử khởi động shell python / django trên hộp linux, tôi sẽ nhận được OSError: [Errno 12] Cannot allocate memory.

free -m dường như xác nhận tôi hết bộ nhớ:

             total       used       free     shared    buffers     cached
Mem:           590        560         29          0          3         37
-/+ buffers/cache:        518         71
Swap:            0          0          0

Nhưng tôi không thể thấy những gì đang ăn hết bộ nhớ với tophoặc ps aux:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
    1 root      20   0 24336  908    0 S  0.0  0.2   0:00.68 init               
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd           
    3 root      20   0     0    0    0 S  0.0  0.0   0:04.85 ksoftirqd/0        

Làm thế nào tôi có thể xác định rò rỉ? Cảm ơn.

BTW, tôi không chắc nó có liên quan hay không, nhưng cái máy tôi đang nói đến là một phiên bản AWS EC2 với Ubuntu 12 đang chạy.

Câu trả lời:


5

Thử đi:

  1. Đi vào top.
  2. Nhấn F(tức là Shift+ F) để chỉ định trường sắp xếp.
  3. Loại N. Điều này sẽ biến chữ thường ntrong danh sách thành chữ hoa N.
  4. Nhấn Enter. Danh sách nên được sắp xếp theo cách sử dụng bộ nhớ.

Nhấn ?hoặc htại màn hình chính để có thêm tùy chọn.

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1010 mysql     20   0  545m  37m 1412 S  0.0  6.3   0:32.97 mysqld
  939 bind      20   0  157m  11m 1896 S  0.0  1.9   0:00.03 named
 3036 ubuntu    20   0 25260 7812 1720 S  0.0  1.3   0:00.42 bash
 1212 root      20   0  192m 7420 2680 S  0.0  1.2   0:03.87 apache2
 1322 www-data  20   0  192m 5880 1088 S  0.0  1.0   0:00.00 apache2
 1323 www-data  20   0  192m 5188  436 S  0.0  0.9   0:00.00 apache2
 1325 www-data  20   0  192m 5188  436 S  0.0  0.9   0:00.00 apache2
 1328 www-data  20   0  192m 5188  436 S  0.0  0.9   0:00.00 apache2
 1329 www-data  20   0  192m 5188  436 S  0.0  0.9   0:00.00 apache2
  968 whoopsie  20   0  197m 4332 2980 S  0.0  0.7   0:00.01 whoopsie
  795 root      20   0  153m 4256 3036 S  0.0  0.7   0:00.06 NetworkManager
 2919 root      20   0 90156 3964 3064 S  0.0  0.7   0:00.02 sshd
  804 root      20   0  101m 3656 2656 S  0.0  0.6   0:00.03 cupsd
 1498 root      20   0  570m 3396 2312 S  0.0  0.6   0:00.03 console-kit-dae
  693 root      20   0 49948 2876 2272 S  0.0  0.5   0:00.01 sshd
  756 root      20   0 79036 2844 2044 S  0.0  0.5   0:00.02 modem-manager
  964 root      20   0  124m 2844 2348 S  0.0  0.5   0:00.02 gdm-binary

Vâng, cảm ơn. hóa ra các trường hợp uwsgi đã vượt khỏi tầm kiểm soát :)
omat

không đủ bộ nhớ để khởi chạy top.. (
Nakilon

làm việc từ nỗ lực thứ 10! vì vậy tôi đã thấy PID ngay cả khi không sắp xếp và sau đó đã làmssh kill -9
Nakilon

3
ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS

cũng sẽ sắp xếp tất cả các quá trình theo cách sử dụng bộ nhớ giảm dần.


ngay cả đối với lệnh này, tôi không thể phân bổ bộ nhớ
user1179459

1
@ user1179459 Hãy thử tạm thời thêm tệp hoán đổi, sau đó bắt đầu gỡ lỗi những gì ăn hết bộ nhớ của bạn sau khi bạn có một hệ thống ổn định. Bạn có thể thoát khỏi nó sau khi bạn đã khắc phục nguyên nhân gốc.
WhyNotHugo
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.