How many CPUs (including all cores) are in your systems? --Michael
On Nov 20, 2008, at 12:06 PM, Michael wrote: > 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 > > _______________________________________________ > varnish-misc mailing list > varnish-misc@projects.linpro.no > http://projects.linpro.no/mailman/listinfo/varnish-misc > _______________________________________________ varnish-misc mailing list varnish-misc@projects.linpro.no http://projects.linpro.no/mailman/listinfo/varnish-misc