2015-06-23 18 views

Trả lời

11

lẽ

$ touch /path/to/your/stats.txt 
$ puma -S /path/to/your/stats.txt 

trong một thiết bị đầu cuối

$ watch cat /path/to/your/stats.txt 

Kết quả trong:

--- 
pid: 14364 
config: !ruby/object:Puma::Configuration 
    cli_options: 
    conf: 
    options: 
    :min_threads: 0 
    :max_threads: 16 
    :quiet: false 
    :debug: false 
    :binds: 
    - tcp://0.0.0.0:9292 
    :workers: 0 
    :daemon: false 
    :mode: :http 
    :before_fork: [] 
    :worker_timeout: 60 
    :worker_boot_timeout: 60 
    :worker_shutdown_timeout: 30 
    :state: /path/to/your/stats.txt 
    :config_file: 
    :control_auth_token: 21c9241912a8e0e7ddaabac667ff5682 
    :tag: solar 
    :environment: development 

Nhưng trông tĩnh :(

Bắt đầu từ ứng dụng của bạn qua puma như thế này:

$ puma -S /path/to/your/stats.txt -C config/puma.rb --control tcp://0.0.0.0:9191 --control-token foo config.ru 

cho phép bạn sau để truy vấn mỗi webbrowser của bạn:

$ http://localhost:9191/stats?token=foo 
or 
$ pumactl -C tcp://0.0.0.0:9191 -T foo stats 

Hệ quả là :

{ "workers": 3, "phase": 0, "booted_workers": 3 } 

nào trông năng động hơn ...

Edit_0:

Là người lao động quy trình, người ta có thể cũng công cụ đòn bẩy được cung cấp bởi hệ điều hành để thu thập thông tin, ví dụ trên Linux:

Bắt đầu từ một trường hợp puma:

puma -S p/stats.txt -C config/puma.rb --control tcp://0.0.0.0:9191 --control-token foo config.ru 
[1908] Puma starting in cluster mode... 
[1908] * Version 2.15.3 (ruby 2.1.5-p273), codename: Autumn Arbor Airbrush 
[1908] * Min threads: 8, max threads: 32 
[1908] * Environment: development 
[1908] * Process workers: 3 
[1908] * Preloading application 
[1908] * Listening on tcp://0.0.0.0:9292 
[1908] Use Ctrl-C to stop 
[1908] * Starting control server on tcp://0.0.0.0:9191 
[1908] - Worker 0 (pid: 1921) booted, phase: 0 
[1908] - Worker 1 (pid: 1929) booted, phase: 0 
[1908] - Worker 2 (pid: 1937) booted, phase: 0 

Sử dụng hàng đầu để điều tra lao động:

$ top -p1921 -p1929 -p1937 -n 1 

cho chúng ta

Tasks: 3 total, 0 running, 3 sleeping, 0 stopped, 0 zombie 
%Cpu(s): 8.4 us, 1.5 sy, 0.0 ni, 88.9 id, 1.2 wa, 0.0 hi, 0.0 si, 0.0 st 
KiB Mem: 4058820 total, 1626576 used, 2432244 free, 56456 buffers 
KiB Swap: 9609212 total,  0 used, 9609212 free. 424948 cached Mem 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM  TIME+ COMMAND  
1921 benjamin 20 0 1171600 85484 3116 S 0.0 2.1 0:00.38 puma   
1929 benjamin 20 0 1171600 85264 2884 S 0.0 2.1 0:00.37 puma   
1937 benjamin 20 0 1171600 85264 2884 S 0.0 2.1 0:00.42 puma 

mà từ đó người ta có thể phân tích ra các thông tin có liên quan như Sử dụng CPU hoặc RAM.

+0

thx @benjamin nhưng thông số '-S' được ghi lại ở đâu? – Tal

+0

@Tal, trong phiên bản puma 2.15.3 cuộc gọi tới "puma --help" hiển thị tài liệu ngắn. Tôi sẽ cập nhật câu trả lời của mình để hiển thị cho bạn nội dung ... – benjamin

+0

thx @benjamin, nhưng tiếc là có vẻ như điều này không cung cấp thông tin chính tôi đang tìm kiếm, đó là trạng thái của người lao động (bận/nhàn rỗi) – Tal

0

Bạn có thể sử dụng công cụ pumactl:

$ pumactl --help 
+1

thx Yuri, nhưng điều này không cho phép tôi theo dõi số lượng công nhân/chủ đề, đó là những gì được yêu cầu. tui bỏ lỡ điều gì vậy? – Tal

2

Tôi sử dụng thần hoặc monit.

God là một viên ngọc ruby, Monit là một công cụ giám sát

  • máy chủ giám sát,
  • quy trình,
  • gửi thông báo cho sử dụng tài nguyên,
  • khởi động lại quá trình của bạn nếu bị rơi,
  • cung cấp terminal và web ui để kiểm tra trạng thái của tiến trình.
Các vấn đề liên quan