Công cụ đơn giản để sử dụng biểu đồ bộ nhớ?


14

Có một kịch bản sẽ hiển thị việc sử dụng bộ nhớ dưới dạng biểu đồ, ví dụ như biểu đồ hình tròn, với mỗi quy trình là một lát cắt riêng biệt?

Tôi không tìm kiếm thứ gì đó như Munin để biểu đồ mức sử dụng bộ nhớ theo thời gian, mà chỉ hiển thị mức sử dụng bộ nhớ cho mỗi quá trình tại một thời điểm duy nhất.

Để làm cho yêu cầu của tôi trở nên khó hiểu hơn, nó dành cho một máy chủ không đầu (vì vậy không có ứng dụng X). Cách đơn giản nhất là viết tệp PNG, hoặc có thể là tệp HTML (có thể sử dụng Javascript để cho phép lọc các quy trình, thay đổi giữa các loại biểu đồ, v.v.)

Câu trả lời:


13

Kế toán bộ nhớ cho mỗi quá trình là khó khăn vì một số lý do tôi sẽ nhận được trong một phút. Đối với giám sát đơn giản, các tập lệnh gkrellmd hoặc nagios có lẽ là đủ. Nếu bạn muốn độ chính xác cao hơn, bạn sẽ cần phải chăm chỉ hơn.

smem giới thiệu khái niệm Kích thước tập hợp tỷ lệ :

Do các phần lớn của bộ nhớ vật lý thường được chia sẻ giữa nhiều ứng dụng, nên số đo tiêu chuẩn sử dụng bộ nhớ được gọi là kích thước bộ thường trú (RSS) sẽ đánh giá quá cao mức sử dụng bộ nhớ. Thay vào đó, PSS đo lường "chia sẻ công bằng" của từng ứng dụng cho từng khu vực được chia sẻ để đưa ra một biện pháp thực tế.

Ví dụ: Bạn khởi động Gnome, khiến một số quy trình bắt đầu, một quy trình cho mỗi applet và chương trình. Tất cả đều liên kết đến libglib. Linux tải libglib vào một khối bộ nhớ và ánh xạ nó vào mọi tiến trình muốn libglib. Kế toán bộ nhớ ngây thơ đếm kích thước libglib đầy đủ so với mọi quá trình liên kết với nó.

smem chia chi phí libglib giữa các quy trình sử dụng nó, để đưa ra một bức tranh gần gũi hơn về thực tế. Nó cũng có một số tùy chọn để hiển thị việc sử dụng bộ nhớ (từ trang web):

  1. Hiển thị thông tin quy trình cơ bản smem
  2. Hiển thị chế độ xem hệ thống smem -R 4G -K / đường dẫn / đến / vmlinux -w
  3. Hiển thị tổng số và tỷ lệ phần trăm smem -t -p
  4. Hiển thị các cột khác nhau smem -c "tên người dùng pss"
  5. Hiển thị các quy trình được lọc bằng cách ánh xạ smem -M libxml
  6. Hiển thị ánh xạ được lọc theo quy trình smem -m -P [e]
  7. Đọc dữ liệu từ chụp tarball smem - nguồn chụp.tar.gz
  8. Hiển thị biểu đồ thanh được dán nhãn bởi pid smem --bar pid -c "pss uss"
  9. Hiển thị biểu đồ hình tròn của RSS được dán nhãn theo tên smem --pie name -s rss

Tuy nhiên, bạn sẽ cần một kernel rất gần đây (> 2.6.27).


1
Vâng, đề nghị của họ rằng 2.6.27 là hợp lý gần đây là khá buồn cười. Các bản phát hành duy nhất mà tôi biết rằng con tàu có nhân mới hơn là Fedora 10 và Ubuntu 9.01.
Dave Cheney

9.04; Ubuntu 8.10 được phát hành với 2.6.27, nhưng 2.6.30 là trong RC3.
jldugger

Tôi xin lỗi, tôi đã dành thời gian dài ở vùng đất RHEL, nơi 2.6,18 được coi là gần đây.
Dave Cheney

5

Không thể nghĩ bất cứ điều gì ngoài kệ

tuy nhiên, một tập hợp các tập lệnh PHP thực thi ps -AH v | awk '{in $ 8, $ 9, $ 10}' và sử dụng điều đó với pChart có thể cung cấp cho bạn một trang web sẽ làm những gì bạn đang tìm kiếm? (sử dụng tính bằng Kb, tỷ lệ phần trăm của tổng số và tên quy trình)


1
+1, tôi đã nghĩ về điều đó với api biểu đồ google. :)
Nút

điểm tốt. api biểu đồ google có thể nhanh hơn để làm việc với ...
Mark Regensberg

2

Hãy nhìn vào sarface - nó phụ thuộc vào dữ liệu sar và bạn có thể theo dõi việc sử dụng bộ nhớ của mình (và tất cả các dữ liệu sar / sysstat khác) trực tiếp.



1

Tự làm đi. Tạo một kịch bản shell đơn giản cập nhật cơ sở dữ liệu RRD. Sau đó vẽ biểu đồ bằng rrdtool.


1

Nếu bạn thực sự ở mức độ chi tiết thấp hơn, đừng quên sưu tầm. Dưới đây là một ví dụ về các loại sử dụng bộ nhớ cho mỗi quá trình mà nó có thể báo cáo:

GHI 1 cag-dl585-02 (1244758290.002) (Thu Jun 11 lúc 18 giờ 11 phút 30 năm 2009)

TÓM TẮT QUY TRÌNH (quầy là / giây)
# PID Người dùng S VmSize VmLck VmRSS VmData VmStk VmExe VmLib MajF Lệnh MinF
 9089 root S 66856K 0 2328K 1440K 212K 736K 6812K 0 0 gửi:
 9097 smmsp S 57600K 0 1772K 1304K 204K 736K 5904K 0 0 gửi:
 9108 root S 6428K 0 360K 180K 84K 88K 1944K 0 0 gpm
 9120 root S 74808K 0 1136K 476K 520K 48K 1920K 0 0 crond
 9173 xfs S 20904K 0 1828K 1124K 88K 104K 3084K 0 0 xfs

Nếu bạn quan tâm đến các quy trình cụ thể, bạn có thể chỉ định các bộ lọc phù hợp (bao gồm cả công tắc để hiển thị chủ đề).

Và nếu bạn quan tâm đến bộ nhớ nói chung, nó cũng có thể hiển thị chi tiết bản mỏng và thậm chí có đầu ra định dạng vmstat. Tại sao bạn muốn hiển thị dữ liệu ở định dạng vmstat khi công cụ hiện có đã làm điều đó? Điều đó thật dễ dàng - với chung bạn có thể đăng nhập số liệu thống kê vào một tệp và phát lại sau đó ở nhiều định dạng.

Hãy thử nó, bạn sẽ thích nó


1
  1. Grep quá trình.
  2. Phân tích đầu ra và lưu ở định dạng được phân tách bằng dấu phẩy trong tệp văn bản.
  3. mở tệp được phân tách bằng dấu phẩy trong excel.
  4. Vẽ biểu đồ cho dữ liệu đó bằng tiện ích biểu đồ của excel.

Nếu bạn muốn ảnh chụp nhanh bộ nhớ ở các khoảng thời gian khác nhau ... hãy đặt công việc định kỳ ở khoảng thời gian mong muốn và chạy tập lệnh.

mong rằng sẽ giúp ....


0

Đây không phải là chính xác những gì bạn đang tìm kiếm, nhưng có lẽ bạn có thể điều chỉnh nó theo nhu cầu của mình bằng cách sử dụng tài liệu tham khảo này (tìm "Sử dụng bộ nhớ theo quy trình").



0

Bạn có thể sử dụng #top hoặc #sysstat


0

Tôi không nói chi tiết hơn nhưng colll có một tùy chọn để tạo đầu ra phân tách bằng dấu phân cách, vì vậy trong trường hợp của gnuplot, bạn chỉ cần tạo dữ liệu của mình với khoảng trắng trong đó và bạn đã thiết lập xong. Nó thậm chí sẽ tải độc đáo vào excel. Nếu bạn muốn có dấu phẩy, bạn có thể thay đổi dấu phân cách và nếu bạn thực sự muốn thực hiện tuyến thứ nhất (hãy cẩn thận vì các ô không cần thiết khớp với dữ liệu!), Bạn có thể thay đổi dấu phân cách thành dấu hai chấm và thậm chí thay đổi dấu thời gian thành UTC. -dấu


0

kSar, dựa trên dữ liệu sar, nhưng nó dựa trên java, nên ít nhiều nền tảng độc lập và sẽ cho phép bạn ssh đến một máy chủ từ xa để lấy dữ liệu.

http://ksar.atomique.net/


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.