Overflowed work requests
Michael
postmaster at softsearch.ru
Thu Nov 20 21:06:46 CET 2008
Hi,
PF> What does "overflowed work requests" in varnishstat signify ? If this
PF> number is large is it a bad sign ?
I have similar problem. "overflowed work requests" and "dropped work
requests" is too large.
FreeBSD 7.1-PRERELEASE
varnish-2.0.2 from ports
> varnishstat -1
uptime 385 . Child uptime
client_conn 115120 299.01 Client connections accepted
client_req 113731 295.41 Client requests received
cache_hit 39565 102.77 Cache hits
cache_hitpass 8338 21.66 Cache hits for pass
cache_miss 65744 170.76 Cache misses
backend_conn 74104 192.48 Backend connections success
backend_unhealthy 0 0.00 Backend connections not attempted
backend_busy 0 0.00 Backend connections too many
backend_fail 0 0.00 Backend connections failures
backend_reuse 73414 190.69 Backend connections reuses
backend_recycle 73469 190.83 Backend connections recycles
backend_unused 0 0.00 Backend connections unused
n_srcaddr 3207 . N struct srcaddr
n_srcaddr_act 456 . N active struct srcaddr
n_sess_mem 1910 . N struct sess_mem
n_sess 1780 . N struct sess
n_object 63603 . N struct object
n_objecthead 63603 . N struct objecthead
n_smf 126931 . N struct smf
n_smf_frag 1 . N small free smf
n_smf_large 18446744073709551614 . N large free smf
n_vbe_conn 239 . N struct vbe_conn
n_bereq 391 . N struct bereq
n_wrk 496 . N worker threads
n_wrk_create 496 1.29 N worker threads created
n_wrk_failed 0 0.00 N worker threads not created
n_wrk_max 47907 124.43 N worker threads limited
n_wrk_queue 455 1.18 N queued work requests
n_wrk_overflow 111098 288.57 N overflowed work requests
n_wrk_drop 47232 122.68 N dropped work requests
n_backend 1 . N backends
n_expired 1960 . N expired objects
n_lru_nuked 0 . N LRU nuked objects
n_lru_saved 0 . N LRU saved objects
n_lru_moved 32435 . N LRU moved objects
n_deathrow 0 . N objects on deathrow
losthdr 22 0.06 HTTP header overflows
n_objsendfile 0 0.00 Objects sent with sendfile
n_objwrite 85336 221.65 Objects sent with write
n_objoverflow 0 0.00 Objects overflowing workspace
s_sess 77004 200.01 Total Sessions
s_req 113233 294.11 Total Requests
s_pipe 0 0.00 Total pipe
s_pass 8638 22.44 Total pass
s_fetch 73696 191.42 Total fetch
s_hdrbytes 33793720 87775.90 Total header bytes
s_bodybytes 3821523829 9926035.92 Total body bytes
sess_closed 6915 17.96 Session Closed
sess_pipeline 3056 7.94 Session Pipeline
sess_readahead 330 0.86 Session Read Ahead
sess_linger 0 0.00 Session Linger
sess_herd 104807 272.23 Session herd
shm_records 7238597 18801.55 SHM records
shm_writes 606387 1575.03 SHM writes
shm_flushes 44 0.11 SHM flushes due to overflow
shm_cont 2188 5.68 SHM MTX contention
shm_cycles 3 0.01 SHM cycles through buffer
sm_nreq 148189 384.91 allocator requests
sm_nobj 126908 . outstanding allocations
sm_balloc 4091076608 . bytes allocated
sm_bfree 5572595712 . bytes free
sma_nreq 0 0.00 SMA allocator requests
sma_nobj 0 . SMA outstanding allocations
sma_nbytes 0 . SMA outstanding bytes
sma_balloc 0 . SMA bytes allocated
sma_bfree 0 . SMA bytes free
sms_nreq 1 0.00 SMS allocator requests
sms_nobj 0 . SMS outstanding allocations
sms_nbytes 0 . SMS outstanding bytes
sms_balloc 453 . SMS bytes allocated
sms_bfree 453 . SMS bytes freed
backend_req 74104 192.48 Backend requests made
n_vcl 1 0.00 N vcl total
n_vcl_avail 1 0.00 N vcl available
n_vcl_discard 0 0.00 N vcl discarded
n_purge 1 . N total active purges
n_purge_add 1 0.00 N new purges added
n_purge_retire 0 0.00 N old purges deleted
n_purge_obj_test 0 0.00 N objects tested
n_purge_re_test 0 0.00 N regexps tested against
n_purge_dups 0 0.00 N duplicate purges removed
backend default {
.host = "xx.xx.xx.xx";
.port = "80";
}
acl ournet {
"xx.xx.xx.xx";
}
#Below is a commented-out copy of the default VCL logic. If you
#redefine any of these subroutines, the built-in logic will be
#appended to your code.
sub vcl_recv {
if (req.request != "GET" &&
req.request != "HEAD" &&
req.request != "PUT" &&
req.request != "POST" &&
# req.request != "TRACE" &&
# req.request != "OPTIONS" &&
req.request != "DELETE") {
/* Non-RFC2616 or CONNECT which is weird. */
pipe;
# error 405 "Not allowed";
}
# remove usless headers
unset req.http.Cookie;
unset req.http.Authenticate;
unset req.http.Accept;
unset req.http.Accept-Language;
unset req.http.Accept-Encoding;
unset req.http.Accept-Charset;
unset req.http.Referer;
# remove args from url
set req.url = regsub(req.url, "\?.*", "");
# if content changing
if (req.request == "DELETE" || req.request == "PUT") {
if (client.ip ~ ournet) {
lookup;
} else {
error 405 "Not allowed";
}
}
if (req.request != "GET" && req.request != "HEAD") {
/* We only deal with GET and HEAD by default */
pass;
}
if (req.http.Authorization || req.http.Cookie) {
/* Not cacheable by default */
pass;
}
lookup;
}
sub vcl_pipe {
pipe;
}
sub vcl_pass {
pass;
}
sub vcl_hash {
set req.hash += req.url;
if (req.http.host) {
set req.hash += req.http.host;
} else {
set req.hash += server.ip;
}
hash;
}
sub vcl_hit {
# if content changing, remove it from cache
if (req.request == "DELETE" || req.request == "PUT") {
set obj.ttl = 0s;
pass;
}
if (!obj.cacheable) {
pass;
}
deliver;
}
sub vcl_miss {
# if content changing, remove it from cache
if (req.request == "DELETE" || req.request == "PUT") {
pass;
}
fetch;
}
sub vcl_fetch {
if (!obj.cacheable) {
pass;
}
# don't cache redirects
if (obj.status == 302) {
pass;
}
if (obj.http.Set-Cookie) {
pass;
}
set obj.prefetch = -30s;
deliver;
}
sub vcl_deliver {
deliver;
}
#sub vcl_discard {
# /* XXX: Do not redefine vcl_discard{}, it is not yet supported */
# discard;
#}
#
#sub vcl_prefetch {
# /* XXX: Do not redefine vcl_prefetch{}, it is not yet supported */
# fetch;
#}
#
#sub vcl_timeout {
# /* XXX: Do not redefine vcl_timeout{}, it is not yet supported */
# discard;
#}
#
sub vcl_error {
set obj.http.Content-Type = "text/html; charset=utf-8";
synthetic {"
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>"} obj.status " " obj.response {"</title>
</head>
<body>
<h1>Error "} obj.status " " obj.response {"</h1>
<p>"} obj.response {"</p>
<h3>Guru Meditation:</h3>
<p>XID: "} req.xid {"</p>
<address><a href="http://www.varnish-cache.org/">Varnish</a></address>
</body>
</html>
"};
deliver;
}
--
Michael
More information about the varnish-misc
mailing list