C'è un modo per monitorare lo stato di un server puma? in particolare, quanti lavoratori occupati ha e quanti thread sono stati eseguiti da ciascun lavoratore. migliore sarebbe qualcosa di simile a apache's mod_statusCome monitorare un server puma?
risposta
Forse
$ touch /path/to/your/stats.txt
$ puma -S /path/to/your/stats.txt
in un altro terminale
$ watch cat /path/to/your/stats.txt
risultati in:
---
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
Ma che sembra statico :(
partire la vostra applicazione tramite puma in questo modo:
$ puma -S /path/to/your/stats.txt -C config/puma.rb --control tcp://0.0.0.0:9191 --control-token foo config.ru
consente poi di interrogare secondo il vostro browser web:
$ http://localhost:9191/stats?token=foo
or
$ pumactl -C tcp://0.0.0.0:9191 -T foo stats
Con conseguente :
{ "workers": 3, "phase": 0, "booted_workers": 3 }
che sembra più dinamica ...
Edit_0:
Come lavoratori sono processi, si potrebbe anche strumenti di leva forniti dal sistema operativo per raccogliere informazioni, per esempio su Linux:
Avvio di un'istanza 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
Utilizzando superiore per indagare lavoratori:
$ top -p1921 -p1929 -p1937 -n 1
ci dà
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
da cui si può analizzare le informazioni rilevanti come Utilizzo della CPU o della RAM.
È possibile utilizzare lo strumento pumactl
:
$ pumactl --help
thx Yuri, ma questo non mi consente di monitorare il numero di worker/thread, che è ciò che è richiesto. mi sto perdendo qualcosa? – Tal
- 1. Il server Puma muore senza motivo
- 2. Cosa monitorare su SQL Server
- 3. Come riavviare puma dopo l'implementazione?
- 4. Sinatra in streaming con Puma?
- 5. Come monitorare il pool di connessioni attive in SQL Server?
- 6. SSL locale con Ruby/Puma
- 7. Puma .state file
- 8. Come monitorare elasticsearch utilizzando nagios
- 9. Come monitorare un thread di vitale importanza
- 10. Come monitorare un processo su OS X?
- 11. problemi di memoria che utilizzano Heroku puma
- 12. Come faccio ad avviare 'puma', automaticamente, quando eseguo `rails server` (come fa Thin)
- 13. Worker, Threads & Pool size usando Puma
- 14. Monitorare un cluster di nodi
- 15. Come monitorare diverse applicazioni Web (con JMX) su un server Tomcat?
- 16. Come rilevare quale server (thin, puma, passeggero, ...) viene utilizzato per l'applicazione Rails?
- 17. Come monitorare i segnali QT?
- 18. Come posso monitorare l'attività SQL su Oracle?
- 19. Come monitorare continuamente la posizione di un telefono cellulare Android?
- 20. Perché il server Puma rails accetta solo localhost: 3000 anziché 127.0.0.1:3000
- 21. Errore di installazione di Puma su Windows
- 22. Server ha inviato eventi, Puma, Rails e max thread dedicati per ciascun client
- 23. Monitorare costantemente un programma/processo usando Python
- 24. Monitorare le query di un utente MySQL
- 25. Monitorare le modifiche su un oggetto array
- 26. Monitorare costantemente un sensore su Android
- 27. Impossibile installare Puma gem su OSX 10.11.3
- 28. Come monitorare la finestra attiva su un PC remoto
- 29. Come posso monitorare il tempo di rendering in un browser?
- 30. Come monitorare un repository git per le modifiche?
thx @benjamin ma dov'è documentato il parametro '-S'? – Tal
@Tal, in puma versione 2.15.3 una chiamata a "puma --help" mostra una breve documentazione. Aggiornerò la mia risposta per mostrarti il contenuto ... – benjamin
thx @benjamin, ma sfortunatamente sembra che questo non fornisca le informazioni chiave che sto cercando, che è lo stato degli operai (occupato/inattivo) – Tal