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