監控執行緒

你需要跟蹤一些執行緒指標以觀察你的 Varnish Cache。它是否已耗盡 OS 資源或執行良好。

  • threads - 所有池中的執行緒數。
  • threads_created - 建立的執行緒數。
  • threads_failed - Varnish 無法建立執行緒的次數。
  • threads_limited - Varnish 被強制不建立執行緒的次數,因為它被最大化了。
  • thread_queue_len - 當前佇列長度。等待執行緒的請求數。
  • sess_queued - 沒有任何執行緒可用的次數,因此請求必須排隊。
varnishstat -1 | grep "threads\|thread_queue_len\|sess_queued"
MAIN.threads                     100          .   Total number of threads
MAIN.threads_limited               1         0.00 Threads hit max
MAIN.threads_created            3715         0.00 Threads created
MAIN.threads_destroyed          3615         0.00 Threads destroyed
MAIN.threads_failed                0         0.00 Thread creation failed
MAIN.thread_queue_len              0          .   Length of session queue
MAIN.sess_queued                2505         0.00 Sessions queued for thread

如果 thread_queue_len 不為 0,則意味著 Varnish 資源不足並且已開始對請求進行排隊。這將降低這些請求的效能。你需要調查原因。

還要關注 threads_failed。如果這增加,則意味著你的伺服器以某種方式資源不足。在 threads_limited 中增加數字意味著你可能需要增加伺服器 thread_pool_max