SUMMARY: Tweaking a big Solaris box for WWW service

SUMMARY: Tweaking a big Solaris box for WWW service

Post by Bruce Barne » Tue, 31 Oct 1995 04:00:00



        Here is a summary of what I learned about tweaking a Solaris
box for high-performance http service.

1. Use Solaris 2.5. (Solaris 2.5 has been clocked at 520 K hits/hour,
   while the same box did ~300 K hits/hour under Solaris 2.4).
   Solaris 2.3 is slower tha 2.4.

2. Use a threaded server (Commercial Netscape, phttpd, apache)

3. Use a httpd server that supports pre-forked operations
   (NCSA 1.4 or higher, apachee 0.8 or higher)

4. Increase the number of simultaneous TCP connections.

   Solaris 2.4:

        ndd /dev/tcp tcp_conn_req_max 32

   Solaris 2.5:

        ndd /dev/tcp tcp_conn_req_max 128

   up to

        ndd /dev/tcp tcp_conn_req_max 1024

   32 is the largest for Solaris 2.4. 1024 is the largest for
   Solaris 2.5. Check memory usage in Solaris 2.5. Allocating too much
   may chew up more memory, so only allocate what you need.

5. Make sure your servers have a backlog greater than the value
   specified in #4 (32 or 1024). This corresponds to the
        listen(fd,backlog)
   library call.

6. Dedicate a disk just to http logging.

7. Don't use NIS+

8. Don't use Automounter

9. If performance still isn't fast enough, it may be neccessary to
   modify some additional system parameters.  One person has suggested the
   following modifications in /etc/system (and then reboot):

   * increase UFS buffers - suggested if you have at LEAST 64 MB of RAM
   set ncsize = 25000
   set ufs_ninode = 25000
   set bufhwm = 15000

   * increase support for WWW connections
   set nrnode = 1000

   Another suggests a smaller value for bufhwm (4000 - 6000).
   Caution is suggested, as allocating too much will use up memory
   without providing additional gain. I suggest you experiment carefully,
   and monitor performance and memory allocation for optimum usage.

Regarding http performance testing, three suggestions have been made:

        1. Use the performance tester for phttpd
                ftp.lysator.liu.se:/pub/phttpd
                http://www.signum.se/phttpd/

        2. SPEC's WebPerf benchmark
                http://performance.netlib.org/performance/html/spec.html

        3. Netperf has a TCP-CRR test to simulate http traffic

                ftp://ftp.cup.hp.com/dist/networking/benchmarks/netperf*

Thanks to












--

 
 
 

SUMMARY: Tweaking a big Solaris box for WWW service

Post by Chris Lewic » Tue, 31 Oct 1995 04:00:00


: 7. Don't use NIS+

: 8. Don't use Automounter

What is the explanation behind these two suggestions?  I'm assuming that you
wouldn't want to automount any served directorys, but will running automountd
in general slow things down?

And NIS+?

--
------------------------------------------------------------------------------
Christopher A. Lewicki  + (520) 703-5542 +  Maintainer of SEDS.LPL.Arizona.EDU
   Chair, Students for the Exploration and Development of Space (SEDS-USA)

 
 
 

SUMMARY: Tweaking a big Solaris box for WWW service

Post by David Robins » Wed, 01 Nov 1995 04:00:00




>: 7. Don't use NIS+

>: 8. Don't use Automounter

>What is the explanation behind these two suggestions?  I'm assuming that you
>wouldn't want to automount any served directorys, but will running automountd
>in general slow things down?

No.

Quote:>And NIS+?

It's just very slow. I'm told that Solaris 2.5 will be a lot better.

 David.

 
 
 

SUMMARY: Tweaking a big Solaris box for WWW service

Post by dk smi » Fri, 03 Nov 1995 04:00:00



>         Here is a summary of what I learned about tweaking a Solaris
> box for high-performance http service.

> 2. Use a threaded server (Commercial Netscape, phttpd, apache)

Along the lines of this discussion I have a couple related questions that
may merit a separate thread but I'll ask them here since this thread is
about WWW server configurations.

If your server needs to serve several Web sites each in a different
domain, are there some additional techniques or tweaks that may be useful.
For example, due to the way http works we "alias" our ethernet device to
respond to different IP addresses, each one associated to a specific
domain. We run a different instantiation of the Netscape Server that is
"bound" (for lack of a better term) to each IP address. Each domain is
relatively low-bandwidth. (No HotWireds or PathFinders here.) I wonder
when we will hit a performance wall if we keep adding domains and Web
server instances like this.

It would be nice if one instance of the server could "resolve" requests to
a particular domain name and serve up that domain's data. Or does it
really matter? If we have 10, 20, or even 30 domains and a similar number
of instances of the Netscape server running, each with it's 4-16
processes, is this a problem? Is there a better way?

I've seen some ISPs that handle a hundred different domains for Web
service (e.g. best.com). Do they run separate instantiations of a Web
server for each domain? Sounds like a maintenance headache. If they don't
do it this way, then what might they do?

Please share your knowledge or opinions, as it related to Solaris 2.4-2.5.

Thank you,
dk

--
dk smith

 
 
 

SUMMARY: Tweaking a big Solaris box for WWW service

Post by M. Hedlu » Fri, 03 Nov 1995 04:00:00



> I've seen some ISPs that handle a hundred different domains for Web
> service (e.g. best.com). Do they run separate instantiations of a Web
> server for each domain? Sounds like a maintenance headache. If they don't
> do it this way, then what might they do?

I can't answer your question about ifconfig aliasing other than to say
I've gotten above 20 aliases for one interface without noticing a severe
hit -- others may have more informative experiences.  As to Best, though,
they've written a custom server (hacked NCSA, I think) that deals with
their aliased servers.  I do know that there is one centralized software
process handling those requests -- not every Best user has a separate
server instantiation for his or her own domain.  As to how the server does
it, it appears to run through the following:

if the host is www.best.com
   fulfill the request
otherwise
   lookup the user associated with the requested host
   retrieve the page from their directory
   return the requested document _without_ a redirect

(In other words, a request for a customer's domain at
http://www.customer.com/ does _not_ redirect to
http://www.best.com/~customer/.)

In order to accomplish this, I assume they have modified their server such
that it is aware of the ifconfig alias requesting it.  This would be
necessary because the HTTP request does not contain information about the
host to which the client was sent.  Therefore they couldn't just alias
everything to one server without modifying the server first.


 
 
 

SUMMARY: Tweaking a big Solaris box for WWW service

Post by Saba » Sat, 04 Nov 1995 04:00:00


:       Here is a summary of what I learned about tweaking a Solaris
: box for high-performance http service.

: 4. Increase the number of simultaneous TCP connections.

:    Solaris 2.4:

:       ndd /dev/tcp tcp_conn_req_max 32

Actually, that would be :

ndd -set /dev/tcp tcp_conn_req_max 32

You need the -set.

 
 
 

SUMMARY: Tweaking a big Solaris box for WWW service

Post by Dav » Sun, 05 Nov 1995 04:00:00



: > I've seen some ISPs that handle a hundred different domains for Web
: > service (e.g. best.com). Do they run separate instantiations of a Web
: > server for each domain? Sounds like a maintenance headache. If they don't
: > do it this way, then what might they do?

: I can't answer your question about ifconfig aliasing other than to say
: I've gotten above 20 aliases for one interface without noticing a severe
: hit -- others may have more informative experiences.

        I've got >130 IP addresses assigned to le0 with Solaris 2.4, and
am using the Apache server in single-parent, VirtualHost mode.  The only
problem I've noted so far is that I ran out of handles with a separate set
of access and error logs for each VirtualHost at #127, because of
fopen().  I've canned the separate error logs for all but the customers
who know what it is and want the data.

        I've been told that each ethernet interface in these boxes will
allow up to 255 IP addresses to be aliased.  I'll run out of space in
the current class-C before then, but I found that I can assign addresses
from another class-C to the interface, route it through the primary
IP for the machine as a gateway, and things work just fine.

--
------------------------------------------------------------------------

       System/Network Administrator, WestNet Communications, Inc.
PGP Key Fingerprint:  CD 1C C1 15 3E E3 1D 41  ED C2 3E A8 D6 29 BD C4
------------------------------------------------------------------------

 
 
 

SUMMARY: Tweaking a big Solaris box for WWW service

Post by David Carmea » Tue, 07 Nov 1995 04:00:00



> In comp.unix.solaris you write:

        [snip]

> Ah!  Good point.  I'm glad you mentioned this, because I am about to
> implement a multi-home server, and was looking at separate log files.  This
> fopen() limit of 256 handles is per-process, right?

        Yup.

Quote:> But it's good news to me that you have >130 aliases running.  I had no idea
> how many ifaces it could support.

> >       I've been told that each ethernet interface in these boxes will
> >allow up to 255 IP addresses to be aliased.  I'll run out of space in
> >the current class-C before then, but I found that I can assign addresses
> >from another class-C to the interface, route it through the primary
> >IP for the machine as a gateway, and things work just fine.

> Do you mean, like this:

> ifconfig le0 192.168.10.1
> ifconfig le0:1 192.168.11.1
> route add -net 192.168.11.0 192.168.10.1 0

> And then let routed or gated broadcast a route to the alias subnet?

        Exactly.  If I'd figured this out at first, I would have put
them *all* on the new class C.  I'll probably do this on my next server.

and
these
lines
are
so
I
have
more
new
text
than
included!

------------------------------------------------------------------------

       System/Network Administrator, WestNet Communications, Inc.
PGP Key Fingerprint:  CD 1C C1 15 3E E3 1D 41  ED C2 3E A8 D6 29 BD C4
------------------------------------------------------------------------

 
 
 

SUMMARY: Tweaking a big Solaris box for WWW service

Post by Robert Kiessli » Tue, 07 Nov 1995 04:00:00


Hi,


[...]

Quote:>    I've got >130 IP addresses assigned to le0 with Solaris 2.4, and
> am using the Apache server in single-parent, VirtualHost mode.  

[...]

I also tried to assign alias addresse to le0 (le0:1 ...). Everything worked
well.

But after some time, I realized that the backup software NetWorker would
not like this. It would stop with a linencing error. I use it on a single
SS20 server with Solaris 2.4.

Has anybody else made this experience oder ist there even a workaround?

I now use aliases for the lo0 interface, but this is really cumbersome
as:
- routing does not work properly (I have to set up static routes on the
  router that point to le0's address)
- lo0:1 is treted as a point-to-point interface meaning that I cannot
  just assign a single address to it but also have to provide a fake
  other side's IP address.

The above points are learned by experience. I'd like to be convinced
of the opposite.

Robert
--
Robert Kiessling                               Easynet DV GmbH
network administrator                          Naegelsbachstr. 25

                                               Tel. +49 9131 89670

 
 
 

SUMMARY: Tweaking a big Solaris box for WWW service

Post by Jamie Rish » Wed, 08 Nov 1995 04:00:00



Quote:>Along the lines of this discussion I have a couple related questions that
>may merit a separate thread but I'll ask them here since this thread is
>about WWW server configurations.

>I've seen some ISPs that handle a hundred different domains for Web
>service (e.g. best.com). Do they run separate instantiations of a Web
>server for each domain? Sounds like a maintenance headache. If they don't
>do it this way, then what might they do?

I am currently running the Netscape secure server, with 21 aliases
(machine le0, and le0:1 through le0:20).  I run 1-2 processes for smaller
sites, and 2-8 for larger.. all in all 88 processes.  My load is very
very low on the machine, with me, Xwindows and the web processes:
  4:02pm  up 14 day(s),  7:02,  1 user,  load average: 0.06, 0.11, 0.11
  ..and is very stable.. it has never crashed. (downtime is from hardware
 change).  This is a Sun Sparc 10, 64M RAM and a Barracuda 4GB drive.

 This number is nice, too : no http process has used more than 0:15sec
 CPU in 14 days..

Quote:>Please share your knowledge or opinions, as it related to Solaris 2.4-2.5.

>Thank you,
>dk

>--
>dk smith

--

Senior Network Administrator - Multiverse, Inc.
    ( ( ( caution : not for use with analog devices ) ) )
have you told someone you love that you like to Suck?  http://www.suck.com
 
 
 

SUMMARY: Tweaking a big Solaris box for WWW service

Post by Julian Be » Thu, 09 Nov 1995 04:00:00



Rishaw) writes:

>>Along the lines of this discussion I have a couple related questions that
>>may merit a separate thread but I'll ask them here since this thread is
>>about WWW server configurations.

>>I've seen some ISPs that handle a hundred different domains for Web
>>service (e.g. best.com). Do they run separate instantiations of a Web
>>server for each domain? Sounds like a maintenance headache. If they don't
>>do it this way, then what might they do?

We use apache to provide servers on www.<lotsofthings>.co.uk.  AFAIK, it
doesn't neccessarily fork a copy of itself for each site - it generally seems
to have 8 copies of itself forked at all times, irrespective of the number of
different IPs it is answering to.

Julian Bean

>>Please share your knowledge or opinions, as it related to Solaris 2.4-2.5.

>>Thank you,
>>dk

>>--
>>dk smith

>--

>Senior Network Administrator - Multiverse, Inc.
>    ( ( ( caution : not for use with analog devices ) ) )
>have you told someone you love that you like to Suck?  http://www.suck.com

 
 
 

SUMMARY: Tweaking a big Solaris box for WWW service

Post by Charles Stephe » Sat, 11 Nov 1995 04:00:00



Quote: RK> writes:

 RK> [...]
 >> I've got >130 IP addresses assigned to le0 with Solaris 2.4, and
 >> am using the Apache server in single-parent, VirtualHost mode.
 RK> [...]

 RK> I also tried to assign alias addresse to le0 (le0:1
 RK> ...). Everything worked well.

 RK> But after some time, I realized that the backup software
 RK> NetWorker would not like this. It would stop with a linencing
 RK> error. I use it on a single SS20 server with Solaris 2.4.

 RK> Has anybody else made this experience oder ist there even a
 RK> workaround?

Try this:

In the Client Setup dialogue, there is an entry called Aliases.  Add
all the names of your IPaliased hosts and see if that fixes the
problem.

For your reference (listen up y'all): There is a great mailing list


subscribe networker

Enjoy!

cfs

 
 
 

SUMMARY: Tweaking a big Solaris box for WWW service

Post by Eric Sorens » Sun, 12 Nov 1995 04:00:00



  [Missing attribution]
: > >     I've been told that each ethernet interface in these boxes will
: > >allow up to 255 IP addresses to be aliased.  I'll run out of space in
: > >the current class-C before then, but I found that I can assign addresses
: > >from another class-C to the interface, route it through the primary
: > >IP for the machine as a gateway, and things work just fine.
: >

I hope I never have more virtual hosts than I do available class-c
addresses.  At least, not on our current 90-mhz Pentium.

: > Do you mean, like this:
: >
: > ifconfig le0 192.168.10.1
: > ifconfig le0:1 192.168.11.1
: > route add -net 192.168.11.0 192.168.10.1 0
: >
: > And then let routed or gated broadcast a route to the alias subnet?

What is the advantage of configuring the aliases to the loopback as
opposed to the ethernet interface itself?  The command I usually use is
[on BSDI]
# ifconfig ef0 inet 204.182.238.200 aliase

where we0 is our interface card.  There are about 15 IP aliases thus
configured.. am I headed for disaster if I don't do them onto the
loopback?  I once heard an unspecified 'problem' with doing it onto
the card itself, but it's worked damn well so far...

:       Exactly.  If I'd figured this out at first, I would have put
: them *all* on the new class C.  I'll probably do this on my next server.

--

 
 
 

1. Tweaking a big Solaris box for WWW service

Forgive me if this is has just been discussed.

Anyone have suggestions on how to tweak a big Solaris box for fast web
service? Anyone have web benchmark utilities? I've been asked to check
out scalability issues on a web server.

I'll summarize any responses I get, if people e-mail me the
information.

Thanks...

--

2. Child process PID

3. SERVICE: Brand new type of WWW service!

4. Can SCSI devices be shared between two computers?

5. Setting up a WWW server on a Solaris 2.4 x86 box.

6. tabs and underline in troff!!

7. Tweaking Performance on a low end box

8. Linux for the Paranoid

9. Big Big Big CORE Image !!

10. I have a BIG, BIG,BIG problem with DOSEMU 0.98.5.

11. SUMMARY: How Secure Is The Apache WWW Server

12. Big, Big Very BIG SCSI DISK

13. SUMMARY: Selection service error in openwin