varnishd runtime parameters

Tung Nguyen tnguyen at bleacherreport.com
Wed Mar 25 18:37:52 CET 2009


Kristian, thank you.

Im glad to hear that most defaults are good.

Yup, the default thread_pool_min = 1 seems kinda funny.  We'll set it to at
least 100.

I didnt even know about the cli_timeout and will set it to a base line of 10
seconds to test.

Im wondering how you are testing, Im using ab, apachebench, to see how
things behave with -c 10 -n 1000, on the varnished pages.





Here's more specific questions more run time parameters.  The general
question I have is what to look for during testing, should I be looking at
your varnishstat and are the most important things to look for in that
output.


Our varnish stack will look like this:

LB -> Varnish x 2 -> Nginx x 6 -> Mongrel x 60

Some questions about how best to decide how to configure them best to
configure the run time parameters.

-p obj_workspace=4096
Cant find obj_workspace in the man page but found it in the twitter email
post
http://projects.linpro.no/pipermail/varnish-dev/2009-February/000968.html

Is obj_workspace how much space preallocated to be used for the obj that
gets returned from the backend?  So, if my nginx backend returns a web page
that is over 4MB than -p obj_workspace is not enough, would that crash
varnish, or log the error somewhere.

-p sess_workspace=262144
Same deal here with the man page and twitter post.
What is the sess_workspace?

http_workspace
How does sess_workspace and obj_workspace relate to http_workspace?
If we use obj_workspace=4096 and sess_workspace=262144, does the default
http_workspace=8192 make sense?


-p lru_interval=60
Shows up on the twitter post again, but no man notes yet.  Whats the default
for this?

-p sess_timeout=10 \
Default for this is 5.  If the requests from the backend takes longer than 5
seconds, what happens?  Sometimes we have really slow response from the
backend..

-p shm_workspace=32768 \
Is this the same as setting the command line flag -l shmlogsize.  The
default is 80MB.  So dont know twitter did both setting it to less..

-p thread_pools=4 \
-p thread_pool_min=100 \
thread_pool_max
The defaults are 1,1,1000 respectively.  Im wondering how best to determine
this or just leave as default.





######################################################################
# output of varnishstat, what is best to look at here?
######################################################################
0+07:11:24
                                          Hitrate ratio:        4        4
     4
Hitrate avg:        nan      nan      nan

         400         0.00         0.02 Client connections accepted
         400         0.00         0.02 Client requests received
           1         0.00         0.00 Cache hits
           5         0.00         0.00 Cache misses
         399         0.00         0.02 Backend connections success
         399         0.00         0.02 Backend connections failures
           1         0.00         0.00 Backend connections reuses
           5         0.00         0.00 Backend connections recycles
           6          .            .   N struct srcaddr
          21          .            .   N struct sess_mem
           1          .            .   N struct sess
           1          .            .   N struct object
           1          .            .   N struct objecthead
           3          .            .   N struct smf
           1          .            .   N small free smf
           1          .            .   N large free smf
           1          .            .   N struct vbe_conn
           2          .            .   N struct bereq
          10          .            .   N worker threads
          23         0.00         0.00 N worker threads created
          76         0.00         0.00 N overflowed work requests
           2          .            .   N backends
           5          .            .   N expired objects
           6         0.00         0.00 Objects sent with write
         400         0.00         0.02 Total Sessions
         400         0.00         0.02 Total Requests
         394         0.00         0.02 Total pipe
           5         0.00         0.00 Total fetch
      352131         0.00        13.60 Total header bytes
        1745         0.00         0.07 Total body bytes
         397         0.00         0.02 Session Closed
           3         0.00         0.00 Session herd
       33185         2.00         1.28 SHM records
       19306         2.00         0.75 SHM writes
          32         0.00         0.00 SHM MTX contention
          11         0.00         0.00 allocator requests
           1          .            .   outstanding allocations
        8192          .            .   bytes allocated
  6612459520          .            .   bytes free
           5         0.00         0.00 Backend requests made
           1         0.00         0.00 N vcl total
           1         0.00         0.00 N vcl available
           1          .            .   N total active purges
           1         0.00         0.00 N new purges added







Any response is appreciated.

Thanks,
Tung










On Tue, Mar 24, 2009 at 12:20 AM, Kristian Lyngstol <
kristian at redpill-linpro.com> wrote:

> On Mon, Mar 23, 2009 at 05:58:58PM -0700, Tung Nguyen wrote:
> > Hi guys,
> > So, Im reading over an archive email thread about twitters configuration.
> >
> >
> http://projects.linpro.no/pipermail/varnish-dev/2009-February/000968.html
> >
> > It looks like they had to adjust a lot of parameters... and Im not
> finding
> > all the parameters definitions in the varnishd man pages.  Im wondering
> if
> > for most cases running varnish with the defaults is fine?
> >
> > Any caveats here which run time parameters should I focus on.
>
> You can mostly run it with the defaults, yes. This depends on what sort of
> usage you have though.
>
> One notable exception is that I strongly recommend that you bring
> thread_pool_min up to a decent level (reflecting how many users you
> actually have. Numbers in the hundreds is normal). You'll also want to
> adjust the cache size to your system, but that goes without saying.
>
> If you expect extremely high load, you might have to increase cli_timeout
> too. I've run tests where even setting it to 15 seconds is insufficient and
> causes childs to be killed off. Though for most production sites, I'd guess
> 5 seconds could work and 10 seconds would definitely work.
>
> --
> Kristian Lyngstøl
> Redpill Linpro AS
> Tlf: +47 21544179
> Mob: +47 99014497
>



-- 
Tung Nguyen, Lead Developer
Bleacher Report, The Open Source Sports Network
(510) 928-0475
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20090325/3ed3ebb6/attachment-0001.html>


More information about the varnish-misc mailing list