Overflowed work requests
Paras Fadte
plfgoa at gmail.com
Mon Nov 24 06:48:37 CET 2008
CPU is Quad core , Intel(R) Xeon(R) CPU E5430 @ 2.66GHz
On Sun, Nov 23, 2008 at 11:39 PM, Michael S. Fischer
<michael at dynamine.net> wrote:
> 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 at projects.linpro.no
>> http://projects.linpro.no/mailman/listinfo/varnish-misc
>>
>
> _______________________________________________
> varnish-misc mailing list
> varnish-misc at projects.linpro.no
> http://projects.linpro.no/mailman/listinfo/varnish-misc
>
More information about the varnish-misc
mailing list