Công cụ theo dõi thời gian đánh cắp (st)


12

Chúng tôi đang chạy trên một máy chủ "chuyên dụng" ảo, theo lý thuyết, có nghĩa là chúng tôi là những người duy nhất trên máy chủ. Trong thực tế .... Tôi nghĩ rằng chúng ta có thể không.

nhập mô tả hình ảnh ở đây

Lưu ý rằng mặc dù có vẻ như chúng ta đang giết chết máy của mình, "Steal time" ở mức 71%

Tôi đang lấy số liệu thống kê về tải và tôi đã thất vọng vì chỉ số này không hiển thị trong biểu đồ của tôi. Có công cụ nào theo dõi cái này có thể giúp được không?


Thông tin thêm:

Chúng tôi đang chạy 4 lõi, model:

# grep "model name" /proc/cpuinfo | sort -u
model name  : Intel(R) Core(TM)2 Duo CPU     E7500  @ 2.93GHz

1
Ảo chuyên dụng? Trong trường hợp XEN, họ sẽ cần ghim các lõi chuyên dụng để sử dụng chuyên dụng trong máy ảo của bạn. Có vẻ như nhà cung cấp của bạn đã đặt quá nhiều CPU bởi một sự không công bằng. Anh ấy nói gì với điều này?
Nils

1
Bạn đã có bao nhiêu vCPU và loại CPU được báo cáo trong grep "model name" /proc/cpuinfo|sort -u? Nếu đây thực sự là một máy chủ chuyên dụng thì sẽ có thứ gì đó ngốn hết thời gian của CPU trên Dom0. HOẶC họ đã cung cấp cho bạn nhiều vCPUs hơn mức có sẵn trong Dom0.
Nils

1
Trừ khi đây là một ngoại lệ tạm thời, có vẻ như isp của bạn đang nói dối bạn và trên thực tế, họ đang chạy các vms nặng cpu khác trên máy này, hoặc có một cái gì đó được cấu hình rất sai khiến cho dom0 mất rất nhiều thời gian cpu .
psusi

1
SuSE khuyến nghị nên dành riêng hai lõi cho Dom0 để có thể thực hiện tất cả xử lý IO mà không làm phiền các máy ảo khác. Trong mắt tôi, điều đó chỉ cần thiết cho các hệ thống có thời gian bị đánh cắp trong lưu lượng truy cập DomUs VÀ IO nặng. Tôi muốn biết liệu nhà cung cấp của bạn có gán nhiều vCPU hơn các lõi logic hay không - như gán 4 vCPU trong khi chỉ có 2 CPU logic có sẵn trong Dom0 - điều đó cũng sẽ giải thích "bị đánh cắp" (và cũng là một ý tưởng khá dũng cảm - nhưng có thể trong XEN) .
Nils

1
Nguyên nhân sâu xa của nguyên nhân này hóa ra là ISP có VM được cấu hình không chính xác. Vị khách được cho biết nó có nhiều lõi hơn so với thực tế. Điều này dường như gây ra sự tàn phá với việc lập kế hoạch. ISP không thể cung cấp hỗ trợ công nghệ thông minh, nhưng chúng tôi có thể "chứng minh" vấn đề bằng cách vô hiệu hóa các lõi số lẻ trong / Proc. Không bao giờ là một vấn đề kể từ đó.
mgjk

Câu trả lời:


12

Câu hỏi của bạn được xác định rõ, nhưng bạn không cung cấp nhiều thông tin về môi trường của mình, cách bạn đang theo dõi hoặc công cụ đồ họa nào bạn đang sử dụng. Tuy nhiên, do SNMP được sử dụng khá phổ biến vì tôi sẽ cho rằng bạn đang sử dụng nó và có ít nhất một chút quen thuộc với nó.

Mặc dù (gần như tôi có thể nói) thời gian đánh cắp CPU hiện không có sẵn từ snmpd, bạn có thể tự mở rộng nó bằng UCD-SNMP-MIB::extOutputđối tượng và execcác lệnh.

Cách dễ nhất (mà tôi đã tìm thấy) để có được thời gian đánh cắp là từ iostat. Sử dụng cấu trúc sau đây chúng ta có thể nhận được chỉ là thời gian ăn cắp:

$ iostat -c | awk 'NR==4 {print $5}'
0.00

Do đó, hãy thêm phần sau vào snmpd.conf của bạn:

exec cpu_steal_time /usr/bin/iostat -c | /usr/bin/awk 'NR==4 {print $5}'

(Ngoài ra, bạn có thể đặt lệnh trong tập lệnh bao bọc và gọi trình bao bọc từ bên trong snmpd.conf.)

Mỗi execcuộc gọi trong snmpd.confđược lập chỉ mục bắt đầu từ 1. Vì vậy, nếu bạn chỉ có một câu lệnh exec thì bạn sẽ muốn thăm dò ý kiến UCD-SNMP-MIB::extOutput.1. Nếu đây là câu lệnh exec thứ 5 thì thăm dò ý kiến UCD-SNMP-MIB::extOutput.5, v.v.

OID số UCD-SNMP-MIB::extOutput.1.3.6.1.4.1.2021.8.1.101vì vậy nếu bạn ở chỉ số 1 thì nó sẽ là .1.3.6.1.4.1.2021.8.1.101.1, và chỉ số 5 sẽ là .1.3.6.1.4.1.2021.8.1.101.5, v.v.

Sau đó, bạn tạo một biểu đồ bỏ phiếu mà SNMPD OID của loại máy đo, dao động từ 01100. Điều này sẽ cung cấp cho bạn một số đồ thị đẹp.


Câu trả lời chính xác. Làm thế nào thường xuyên sẽ được tập hợp? Chỉ trong cuộc thăm dò ý kiến, hoặc có một cách như trong RMON-MIB sẽ ghi lại các giá trị mà không cần thăm dò ý kiến ​​bên ngoài?
Nils

Tôi tin rằng nó sẽ kéo theo điều này mỗi khi snmpdtruy vấn OID đó.
bahamat

Nếu i bổ sung chưa được cài đặt: top -bn1 | sed -nr '3s /.*,// gp'
davide

9

sar -ucó thể hữu ích trong trường hợp của bạn sar thường là một phần của gói sysstat .


Tôi ước tôi có thể đặt nhiều hơn một câu trả lời là câu trả lời được chấp nhận. Cả hai câu trả lời đều rất hữu ích :-) Cảm ơn bạn!
mgjk

0

Câu trả lời được đánh giá cao nhất là rất tốt, nhưng tại thời điểm này nó không hoạt động đầy đủ: net-snmp mất đường ống trong execcuộc gọi, vì vậy điều này sẽ giống như thế này

extend-sh cpu_steal_time /usr/bin/iostat -c 1 1 | /usr/bin/awk '!/%user|Linux|^$/ {print $5}'

Và kết quả sẽ được hiển thị dưới nsExtendOutput1Table:

# snmpwalk localhost NET-SNMP-EXTEND-MIB::nsExtendOutput1Table
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cpu_steal_time" = STRING: 0.60
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."cpu_steal_time" = STRING: 0.60
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."cpu_steal_time" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendResult."cpu_steal_time" = INTEGER: 0

trong đó nsExtendOutput1Lineoid là .1.3.6.1.4.1.8072.1.3.2.3.1.1:

snmpwalk localhost .1.3.6.1.4.1.8072.1.3.2.3.1.1
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cpu_steal_time" = STRING: 0.60
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.