监控线程

你需要跟踪一些线程指标以观察你的 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