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