Overflowed work requests

Michael S. Fischer michael at dynamine.net
Sun Nov 23 19:09:11 CET 2008


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
>




More information about the varnish-misc mailing list