Tôi đang định cấu hình máy chủ bị xoắn của mình. Nó sử dụng nhiều bộ nhớ hơn tôi mong đợi. Việc sử dụng bộ nhớ của nó tăng theo thời gian.Việc sử dụng bộ nhớ được báo cáo bởi guppy khác với lệnh ps
ps -o pid,rss,vsz,sz,size,command
PID RSS VSZ SZ SZ COMMAND
7697 70856 102176 25544 88320 twistd -y broadcast.tac
Như bạn có thể nhìn thấy nó tốn 102.176 KBs, cụ thể là, 99,78125 MBS. Và tôi sử dụng guppy từ một cửa cống xoắn để xem hồ sơ sử dụng bộ nhớ.
>>> hp.heap()
Partition of a set of 120537 objects. Total size = 10096636 bytes.
Index Count % Size % Cumulative % Kind (class/dict of class)
0 61145 51 5309736 53 5309736 53 str
1 27139 23 1031596 10 6341332 63 tuple
2 2138 2 541328 5 6882660 68 dict (no owner)
3 7190 6 488920 5 7371580 73 types.CodeType
4 325 0 436264 4 7807844 77 dict of module
5 7272 6 407232 4 8215076 81 function
6 574 0 305776 3 8520852 84 dict of class
7 605 1 263432 3 8784284 87 type
8 602 0 237200 2 9021484 89 dict of type
9 303 0 157560 2 9179044 91 dict of zope.interface.interface.Method
<384 more rows. Type e.g. '_.more' to view.>
Hum ... Có vẻ như đã xảy ra sự cố. Guppy cho thấy tổng mức sử dụng bộ nhớ là 10096636 byte, cụ thể là 9859.996 KBs hoặc 9.628 MBs.
Đó là một sự khác biệt rất lớn. Có gì sai kết quả lạ này? Tôi đang làm gì sai?
Cập nhật: Tôi đã viết kịch bản theo dõi đêm qua. Nó ghi lại việc sử dụng bộ nhớ và số lượng người dùng trực tuyến. Nó là một máy chủ radio, vì vậy bạn có thể thấy có radio và tổng số người nghe. Đây là hình tôi tạo bởi matplotlib. alt text http://static.ez2learn.com/temp/mem_figure.svg
Điều gì đó thật lạ. Đôi khi việc sử dụng bộ nhớ được in bởi ps rất thấp, như thế này
2010-01-15 00:46:05,139 INFO 4 4 17904 36732 9183 25944
2010-01-15 00:47:03,967 INFO 4 4 17916 36732 9183 25944
2010-01-15 00:48:04,373 INFO 4 4 17916 36732 9183 25944
2010-01-15 00:49:04,379 INFO 4 4 17916 36732 9183 25944
2010-01-15 00:50:02,989 INFO 4 4 3700 5256 1314 2260
Lý do giá trị siêu thấp của việc sử dụng bộ nhớ là gì? Và những gì hơn nữa, thậm chí không có radio trực tuyến, không có người nghe, việc sử dụng bộ nhớ vẫn còn cao.
Nhưng ngay cả khi tôi so sánh 69 MB với 10MB, nó chỉ là quá xa. Điều gì có thể là vấn đề? Và hơn nữa, việc sử dụng bộ nhớ tăng theo thời gian. Lúc đầu, RSS là khoảng 2xMB, và nó đến 6x bây giờ. –
một số đối tượng được báo cáo bởi guppy có thể được hoán đổi để python có thể báo cáo chúng, trong khi rss sẽ không bao gồm nó .. im không chắc chắn lý do tại sao quá trình này được đặt quá nhiều bộ nhớ tho, có thể tấn libs chia sẻ ..? – jspcal
Tất cả các thư viện được tải khi khởi động. Nó chỉ sử dụng 2x MB trong trường RSS khi máy chủ khởi động. Nó không có ý nghĩa rằng các thư viện chiếm dụng thêm bộ nhớ. Có cách nào để biết sử dụng bộ nhớ vô hình đó là gì? –