Softpanorama

Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
May the source be with you, but remember the KISS principle ;-)
Bigger doesn't imply better. Bigger often is a sign of obesity, of lost control, of overcomplexity, of cancerous cells

Compiling Apache 1.3 on AIX

News

Open Source packages for AIX

Redbooks Recommended Links GCC on AIX Compilation of open source on AIX
aix toolbox PHP on AIX     Humor Etc

building Apache 1.3 on AIX

With Apache <= 1.3.27 on AIX 5.2, you need to apply this patch: http://www.apache.org/dist/httpd/patches/apply_to_1.3.27/aix.patch The configuration problem is fixed with Apache 1.3.28.

choice of compiler

Some of the builds of gcc floating around have complications with Apache. Some of them don't even work. The build of gcc that I recommend is IBM's RPM install of gcc from AIX toolbox download page.

building Apache

Grab the tarball from http://www.apache.org/dist/httpd/ and unpack it like this:
gunzip < apache_1.3.27.tar.gz | tar -xvf-
cd apache_1.3.27

building Apache 1.3 with gcc

$ CC=gcc
OPTIM='-Wall -g' 
./configure --enable-module=most --enable-shared=max --prefix=$HOME/1327_gcc
$ make
With some builds of gcc, you may hit an error like this when linking an Apache DSO:
ld: 0711-317 ERROR: Undefined symbol: .__fixsfsi
It could be something other than __fixsfsi, but for this class of errors the symbol starts with two underscores (i.e., "__"). A leading period may be displayed after "Undefined symbol" in the error message, but it is not part of the symbol.

The fix for this is to add __fixsfsi (and any other such symbols) to the end of src/support/httpd.exp and run make again. This may be an interative process. If you hit a different symbol next time, add it too to src/support/httpd.exp and run make yet again. You shouldn't hit more than a handful of such symbols.

Note: When Apache 1.3.28 is released, you can instead do something like this on your configure so that there are no unresolved gcc symbols in Apache DSOs:

EXTRA_LDFLAGS_SHLIB='-L/directory/containing/libgcc.a -lgcc'
./configure --other-opts
(Support for the EXTRA_LDFLAGS_SHLIB environment variable arrives with Apache 1.3.28.)

And finally:

$ make install

NEWS CONTENTS

Old News

Alex Kernel Unix guy

I couldn't find reasonable solution to this problem with Google so i decided to share my experience with others. This relates to compiling and running Apache 1.3.37 in 64-bit mode on AIX 5.3 TL06.

I was given a task to prepare 64-bit version of Apache 1.3 branch to run on AIX 5.3 test server. I've downloaded the source package and searched for some how to as this was my first time of compiling Apache in 64-bit. The first information i found advised me to use the variables 'CCFLAGS=-maix64' and 'LDFLAGS=-maix64' but after running ./configure i got to first barrier:

======== Error Output for sanity check ========
cd ..; gcc -DAIX=530 -U__STR__ -DAIX_BIND_PROCESSOR -DUSE_HSREGEX -DUSE_EXPAT -I./lib/expat-lite -DNO_DL_NEEDED -maix64 `./apaci` -lm -lpthread -maix64 -o helpers/dummy helpers/dummy.c
collect2: library libm not found
make: The error code from the last command is 1.

I was missing the libm library obviously:

# lslpp -l bos.adt.libm
lslpp: 0504-132 Fileset bos.adt.libm not installed.

The next step was to find it somewhere. Again after some searching i finally found out that it's not distributed as separate fileset but bos.adt.libm is included in the bos.adt package which can be found on the first AIX installation CD.

# lslpp -L bos.adt.libm
Fileset Level State Type Description (Uninstaller)
----------------------------------------------------------------------------
bos.adt.libm 5.3.0.60 C F Base Application Development
Math Library

Configure ran clean, next barrier arised when i issued make command:

# make
===> src
===> src/regex
sh ./mkh -i _REGEX_H_ regex2.h regcomp.c regerror.c regexec.c regfree.c > ../include/hsregex.h
gcc -I. -I../os/unix -I../include -DAIX=530 -U__STR__ -DAIX_BIND_PROCESSOR -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -DNO_DL_NEEDED -maix64 `../apaci` -DPOSIX_MISTAKE -c regcomp.c
gcc -I. -I../os/unix -I../include -DAIX=530 -U__STR__ -DAIX_BIND_PROCESSOR -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -DNO_DL_NEEDED -maix64 `../apaci` -DPOSIX_MISTAKE -c regexec.c
gcc -I. -I../os/unix -I../include -DAIX=530 -U__STR__ -DAIX_BIND_PROCESSOR -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -DNO_DL_NEEDED -maix64 `../apaci` -DPOSIX_MISTAKE -c regerror.c
gcc -I. -I../os/unix -I../include -DAIX=530 -U__STR__ -DAIX_BIND_PROCESSOR -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -DNO_DL_NEEDED -maix64 `../apaci` -DPOSIX_MISTAKE -c regfree.c
rm -f libregex.a
ar cr libregex.a regcomp.o regexec.o regerror.o regfree.o
ar: 0707-126 regcomp.o is not valid with the current object file mode.
Use the -X option to specify the desired object mode.
ar: 0707-126 regexec.o is not valid with the current object file mode.
Use the -X option to specify the desired object mode.
ar: 0707-126 regerror.o is not valid with the current object file mode.
Use the -X option to specify the desired object mode.
ar: 0707-126 regfree.o is not valid with the current object file mode.
Use the -X option to specify the desired object mode.
make: 1254-004 The error code from the last command is 4.


Stop.
make: 1254-004 The error code from the last command is 1.

Stop.
make: 1254-004 The error code from the last command is 2.

Stop.
make: 1254-004 The error code from the last command is 2.

Stop.

After some searching i have found that this problem can be solved by passing the -maix64 parameter directly to gcc in CC variable:

CC="/usr/bin/gcc -maix64"

But it didn't help. The final step that helped me was following setting of variables (i've unset CFLAGS and LDFLAGS just to be sure):

# export OBJECT_MODE=64
# export CC="/usr/bin/gcc -maix64"
# echo $OBJECT_MODE
64
# echo $CC
/usr/bin/gcc -maix64

The make and make install now passed without problem. And now we're getting to the core and finally to the problem mentioned in our headline. After running /usr/local/apache/bin/apachectl start i got the error.

# /usr/local/apache/bin/apachectl start
httpd: bad user name nobody
/usr/local/apache/bin/apachectl start: httpd could not be started

I've checked the httpd.conf but User nobody and Group nobody directives were uncommented so they should be effective. After checking /etc/passwd and /etc/group i found that user nobody and the group nobody existed. In the next step i tried to create user 'webservd' and group with the same name, changed the directives in httpd.conf and tried to run directly httpd with the -f option specifying the path to the config file.

# file /usr/local/apache/bin/httpd
/usr/local/apache/bin/httpd: 64-bit XCOFF executable or object module
# /usr/local/apache/bin/httpd -f /usr/local/apache/conf/httpd.conf
httpd: bad user name nobody

After that i've tried to create symlink in /etc/apache just to be sure it will find the httpd.conf even in some case of non-standard behaviour but no luck. Output of 'truss /usr/local/apache/bin/httpd -f /usr/local/apache/conf/httpd.conf' showed that no config file is even tried to be loaded which was strange. The final solution that helped was changing the UID and GID numbers for user nobody as AIX uses really non-standard value compared to other OS.

# id nobody
uid=4294967294(nobody) gid=4294967294(nobody)
# lsgroup nobody
nobody id=4294967294 admin=false users=nobody,lpd registry=files
# chgroup
Usage: chgroup [-R load_module] "attr=value" ... group
# chgroup id=65534 nobody
3004-719 Warning: /usr/bin/chgroup does not update /etc/passwd with the new gid.
# id nobody
uid=65534(nobody) gid=65534(nobody)

Please note that i had to edit the /etc/passwd file manually with the new values. After that... tradaaa! Apache finally started with correct user:

# /usr/local/apache/bin/apachectl start
/usr/local/apache/bin/apachectl start: httpd started
# ps -ef | grep htt
webservd 237718 332014 0 15:13:41 – 0:00 /usr/local/apache/bin/httpd
webservd 254028 332014 0 15:13:41 – 0:00 /usr/local/apache/bin/httpd
root 303350 250066 0 15:13:50 pts/0 0:00 grep htt
webservd 311458 332014 0 15:13:41 – 0:00 /usr/local/apache/bin/httpd
webservd 319734 332014 0 15:13:41 – 0:00 /usr/local/apache/bin/httpd
webservd 323838 332014 0 15:13:41 – 0:00 /usr/local/apache/bin/httpd
root 332014 1 0 15:13:41 – 0:00 /usr/local/apache/bin/httpd

Apache Compile HOWTO

Introduction
1.1. Contributors and Contacts
1.2. Why I wrote this document
1.3. What this document is supposed to be
1.4. What this document doesn't do for you
1.5. Platforms
1.6. Copyright Information
1.7. Disclaimer
1.8. New Versions
1.9. Credits
1.10. Feedback
1.11. Translations
1.12. About the author
2. Prerequisites
2.1. General
2.2. OpenSSL
2.3. GNU Database System
2.4. MySQL
2.5. Building mm
3. Getting, build and install Apache with its basic modules
3.1. Get and untar the Apache Source
3.2. mod_ssl
3.3. mod_perl
3.4. Configure and build Apache
4. Additional modules
4.1. mod_dav
4.2. auth_ldap
4.3. mod_auth_mysql
4.4. mod_dynvhost
4.5. mod_roaming
5. Compressed delivery
5.1. mod_gzip
5.2. mod_gunzip
6. mod_php and its prerequisites
6.1. What is mod_php
6.2. Prerequisites
6.3. Building and installing PHP4
7. PHP extensions
7.1. APC (Alternative PHP-cache)
7.2. Zend-Optimizer (Do _NOT_ combine with APC-Cache!)
8. Jakarta Tomcat
8.1. What is Tomcat
8.2. Prerequisites
8.3. Download the binaries
8.4. mod_jk
9. Further Information
9.1. News groups
9.2. Mailing Lists
9.3. HOWTO
9.4. Local Resources
9.5. Web Sites
10. Questions and Answers

O'Reilly Network Installing an Apache RPM [September 11, 2002]

I should preface this by noting that I usually install Apache from source for this very reason. It's often not clear where the contents of an RPM will end up and Apache is a prime example.

There is, however, a nifty way to do a little digging BEFORE you install an RPM. On the command line, type:

rpm -qpil path/to/apache-xyz.rpm | more

where 'path/to/apache-xyz.rpm' is the location of the RPM you wish to install.

Running this on apache-1.3.9-4.i386.rpm under RH6.1 reveals...

-----

% rpm -qpil apache-1.3.9-4.i386.rpm | more

[uninteresting bits and general verbosity deleted]

/etc/httpd/conf
/etc/httpd/conf/access.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/httpd/conf/srm.conf
/etc/httpd/logs
...
/etc/rc.d/init.d/httpd
...
/home/httpd
/home/httpd/cgi-bin
/home/httpd/html
/home/httpd/html/index.html
...
/usr/sbin/httpd
/usr/sbin/logresolve
/usr/sbin/rotatelogs
/usr/sbin/suexec
...

-----

The Apache program itself is /usr/sbin/httpd. You can either run that from the command-line thusly:

% /usr/sbin/httpd

or by rebooting your server since all those files in /etc/rc.d will start Apache automagically when you start your server.

Before doing so, however, be sure to make the appropriate configuration changes in the /etc/httpd/conf/httpd.conf,
srm.conf, and access.conf files -- newer versions of Apache only use httpd.conf.

There are some instructions available on RedHat's site; while they're not particularly geared toward a first time user, they may be of some help in initial Apache configuration...

http://www.redhat.com/support/docs/tips/WWW-Server-Tips/WWW-Server-Tips-3.html

Re: Latest Apache RPM; undefined symbol

Hi Arend,

Thank you.

I replaced the original httpd.conf file and restarted manually without error.

I am wearing my dunce's hat with pride...

Cheers

Geoff

>>> arend@meetsma.org 03 July 2002 17:46:50 >>>
On Tue, 2 Jul 2002, Geoff Amabilino wrote:

> Hi all,
> 
> We have just upgraded our Apache packages to the latest RH version 
>(1.3.22-5.7.1) to avoid the recent security problem.
> 
> We are now getting a problem starting the web server as follows:
> 
> Syntax error on line 212 of /etc/httpd/conf/httpd.conf:
> Cannot load /etc/httpd/modules/mod_log_config.so into server: 
>/etc/httpd/modules
> /mod_log_config.so: undefined symbol: ap_escape_logitem
> 
> I cannot find any clues around the web, and for the moment have had to 
>disable custom logging to get the site going again.
> 
> Has anyone else seen this?  Any help would be welcome.
 

Hi Geoff,

With the recent update, you need to stop and then restart apache by hand 
the first time, then the -HUP at 4:00 will work from then on.

So do this:

/etc/init.d/httpd stop
/etc/init.d/httpd start

then check the logs.

Hope this helps,
Arend

PHPmac - Building and Installing PHP 5 and Apache 1.3.31 on Mac OS X 10.3.4

./configure \
--with-xml \
--with-zlib \
--with-gd \ (You can ommit this line if you have not installed LibJPEG or LibPNG previously)
--with-jpeg-dir=/usr/local \ (You can ommit this line if you have not installed LibJPEG previously)
--with-png-dir=/usr/local \ (You can ommit this line if you have not installed LibPNG previously)
--with-mysql=/usr/local/mysql \ (You can ommit this line if you have not installed MySQL)
--with-apxs=/usr/sbin/apxs
% make
% sudo make install

10 tips for PHP scripts Installing PHP as an Apache DSO

By Julie Meloni
(2/6/01)

PHP is most often paired with the Apache Web server on a Linux/Unix platform. When installing PHP with Apache, you have three installation options: static module, dynamic module (DSO), and CGI binary.

I recommend the DSO installation option as it's extremely easy to maintain and upgrade. For example, suppose you do a simple installation of PHP with just database support. A few days later, you decide that you want to install encryption support. All you have to do is type make clean, add the new configuration option, and followed by make and make install. A new PHP module will be dumped in the proper location for Apache, and all you have to do is restart Apache, not recompile it.

These basic steps will install a fresh version of Apache and PHP as a DSO:

1. Get the latest version of the Apache source code from the Apache Software Foundation.
2. Put this file somewhere logical, such as /usr/local/ or /opt/ or anywhere else you want.
3. Gunzip or uncompress the file, so that you're left with the *.tar file.
4. Type the following to un-tar the file into a directory called apache_[version]:

tar -xvf apache_[version].tar

5. cd into /usr/local/apache_[version] (or wherever you un-tar'd the compressed source file).
6. Type the following to prepare for building, replacing [path] with your own path, such as /usr/local/apache[version] (no trailing slash!). You are now enabling mod_so, which will allow Apache to use DSOs.

./configure --prefix=[path] --enable-module=so

7. When you're back at the prompt, type make, and wait for the prompt to return again.
8. Type make install.

At this point, the compilation will create the final set of directories and files and return you to the prompt.

Next, install PHP:

1. Go to the Downloads area of the PHP home page and select the link for the latest source files.
2. Put this file somewhere logical, such as /usr/local/ or /opt/ or anywhere else you want.
3. Gunzip or uncompress the file, so that you're left with the *.tar file.
4. Type the following to un-tar the file into a directory called php-[version]:

tar -xvf php-[version]

5. cd into /usr/local/php-[version] (or wherever you put it)

You're now ready to build the PHP DSO. Only one configuration option is necessary--with-apxs (a file in the Apache bin directory)--but I'll throw MySQL support in for good measure.

./configure --with-mysql=/[path to mysql] --with-apxs=/[path to apxs]

6. When you're back at the prompt, type make, and wait for the prompt to return again.
7. Type make install.

At this point, the compilation will create the final DSO, plop it in the Apache modules directory, modify some parts of the Apache httpd.conf file for you, and return you to the prompt. When you're back at the prompt, you'll need to go back to the Apache httpd.conf and make a few modifications:

1. Find the line for ServerAdmin, and add your e-mail address, in other words:

ServerAdmin you@yourdomain.com

2. Find the line starting with ServerName, and change it to real values, such as:

ServerName localhost

3. Find a section like the following:

# And for PHP 4.x, use:
#
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps

Modify these lines so that the AddType for PHP 4.0 is uncommented, and add any more file extensions you want to use with PHP, so that the block looks like this:

# And for PHP 4.x, use:
#
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

Save the file, cd up a directory, and start Apache by typing:

./bin/apachectl start

If there are no errors on startup, you can test your installation of Apache and PHP by creating a file called phpinfo.php, containing just this line:

<? phpinfo() ?>

Save this file and put it in Apache's document root (htdocs), then fire up your Web browser and go to http://localhost/phpinfo.php, where you should see a long page of variables and their values.

If you want to reconfigure PHP, all you need to do is run make clean, then a new ./configure command with a new set of options, then make and make install. A new module will appear in the Apache modules directory, and just restart Apache to load this new module. Many headaches are now relieved.

Julie Meloni is the technical director at i2i Interactive and is an avowed proponent of Linux and the open source community. A regular contribtor to CNET Builder.com, she has written a few books on PHP and other technologies.

IBM AIX Support Platforms and Operating Systems Computing @ UW-Madison

Building an Optimized Apache 1.3 for AIX:

These steps assume AIX 4.3.3 or better, Apache 1.3.23 or better, as well as the VisualAge C++ 5.0 compilers. They cover installation of the web server itself, and nothing else. There are optimizations to be had with mod_ssl but these are relatively obvious (use the MM library to cache SSL state in RAM).

One of the major points in this document is: have enough RAM. Memory is cheap, and a web server should never have to swap. Unused RAM goes towards file caching (adjustable via vmtune), so it's a win-win situation.

  1. First, create an unprivileged user and group for the web server to run as. Running your web server as root is never a good idea. This account should not be able to log into the machine, though sometimes for management it is useful to su to the account from another account. In this case, setting a random password for the account but forgetting it, and using sudo to switch users is a good option. This isn't specifically a performance optimization, but if your web server is broken into then your performance isn't going to be very good, either.

    Ensure that the user you specify is able to start as many processes as it needs. You don't want your web server hitting an OS limit of 256 processes (manage that at the web server level, not the OS level). You can check this at the OS level by viewing the maxuproc setting: lsattr -E -l sys0

  2. Get the Apache software from http://httpd.apache.org/ or a local mirror. Extract the software to a sensible location.
  3. Decide whether you are going to need more than 256 httpd processes. This is a hard limit imposed by Apache. If you think you need more than 256 you should edit src/include/httpd.h and change HARD_SERVER_LIMIT. You will need to ensure that your machine has enough RAM to handle this.
  4. Decide where your installation will reside. The default location for Apache is /usr/local/apache. However, if performance is an issue you should put your content on one set of drives and the logs on another. Logging is very disk-intensive and will hinder the performance of the web server if there is contention between log writes and content reads.

    If you have two disks, a fast one and a slow one, use the fast one for the logs and the slow one for the content. Why? With enough RAM the operating system will cache the content (static pages and the CGI files themselves), but writes still need to be flushed to disk rapidly. And later, if you are analyzing the logs you'll probably want the extra speed on the logging disks. Also remember that your operating system needs to do things, so using disks that are separate from the OS is a good idea, too.

    You can adjust the amount of RAM dedicated to the OS's file cache using vmtune. A discussion of this is present in our notes on tuning AIX.

  5. Figure out what architecture your machine is. In this example, I'm tuning for an IBM RS/6000 7025-F50, which has PowerPC 604 CPUs in it. IBM maintains a procedure on how to deduce this information, and a copy is mirrored locally.
  6. Configure Apache, specifying the location you want to install it as the prefix (our suggestion is just to use /usr/local/apache, but mount the appropriate filesystems there). Adjust the -qarch and -qtune flags according to the architecture of your machine. Information and parameters for those flags can be found in the VisualAge C++ documentation.

    env CC=cc CFLAGS="-O3 -qstrict -qarch=ppc -qtune=604" ./configure --enable-module=most --enable-shared=max --prefix=/usr/local/apache

  7. Install Apache (make install).
  8. Edit httpd.conf. Here are some thoughts on certain settings:
    • KeepAlives: the KeepAlive and MaxKeepAliveRequests parameters should be on, and set high. KeepAlives allow a client to request multiple files with the same connection to the web server. These persistent connections will often yield a significant performance boost for HTML pages with graphics, as the client does not need to create a connection to the server for each graphic it wants to retrieve. Conversely, MaxKeepAliveRequests puts a limit on how many files can be retrieved via a single connection, so one client cannot hog resources on the server. The defaults should be fine in most cases.
    • Spare Servers: the MinSpareServers, MaxSpareServers, StartServers, and MaxClients parameters should be set to reasonable values for the load. Apache forks off a process for each client, and under load will start spawning more copies of itself to handle the load. By having some spare httpd processes around the server can avoid the work needed to fork new copies. If you set these settings too high, your machine may waste RAM on extra, unneeded processes. If you set them too low, your server will work hard to spawn new processes to deal with load.

      At startup, Apache spawns the number of processes specified in StartServers. It then routinely checks to make sure that the number of servers running is between the min and max. Obviously, your StartServers parameter should be set between the min and max, then.

      MaxClients is a brake to stop Apache from overwhelming the server. MaxSpareServers is just a setting to govern how many extra copies of httpd stick around. If Apache is under heavy load, it will spawn as many copies of itself as necessary, up to MaxClients or the hard server limit in httpd.h, to deal with the load. This may cause the machine to run out of RAM or do other bad things, and the clients will start to slow down. When the clients aren't getting their data, the users will start hitting Reload in their browser, and that loads your server even more. When the load subsides, Apache will evaluate its situation based on the min and max spare servers settings.

      These settings are something you'll need to experiment with after your web server is in production. You can use "ps -ef | grep http | wc -l" to figure out how many processes are running and compare that to your settings. If you guessed right, congratulations, else adjust the settings and use apachectl to reload the config file. Of course, if you need more that 256 httpd processes you'll need to adjust the setting in httpd.h.

    • MaxRequestsPerChild: The MaxRequestsPerChild parameter helps with memory leaks. Once an httpd process serves the number of requests specified in this parameter it dies. If your system has leaky system libraries, or something you compiled into Apache is leaky (PHP, mod_ssl, mod_perl, etc.), or all of the above (the most likely), the httpd processes will continue to use more and more RAM until they die or you are out of system RAM. Since both options are bad, it is best to leave this setting somewhat high (so that httpd processes aren't always dying) but low enough to keep your RAM usage down. The default is 10000, and that is usually good enough.

    • Dynamic Shared Objects & Modules: Don't use any modules you don't need! Modules tend to add functionality, but at the expense of your performance. Modules such as negotiation_module slow everything down by negotiating content and language. While their functionality is useful sometimes, you need to be aware of what they are doing behind the scenes. If you have users on your server that will be referring to their home directories (http://wherever.com/~username) you'll need to include userdir_module, too. Modules you probably want to keep around are:

      • env_module
      • config_log_module
      • mime_module
      • autoindex_module (though you may wish to disable indexes)
      • dir_module
      • cgi_module
      • alias_module
      • access_module
      • anything you specifically compiled in (mod_php, etc)

    • Directory options: You can set directory options, such as FollowSymLinks and AllowOverride, to enable users or content developers to control server behaviour through .htaccess files. While this is sometimes desirable, it forces Apache to make extra filesystem calls every time a document is requested.

      The best option is something like this:

      <Directory />
      Options FollowSymLinks
      AllowOverride None
      </Directory>

      Why? If Apache should not follow symbolic links then it will need to make a call to the filesystem to determine if the document is a file or a symlink. Similarly, the SymLinksIfOwnerMatch flag requires a system call to determine the owner of the files involved. With AllowOverride set to None, Apache will not need to make a system call to determine if there is a .htaccess file in the relevant directories.

      The results of the system call necessary to perform these operations (lsstat) are not cached by the filesystem. That is why it is important to not use them unless necessary, as you end up touching the file system every time.

      A good discussion of this can be found at the Apache web site.

    • Logging & Host Name Lookups: Logging can be intensive for a popular web site. For this reason, only log what you need. The HostnameLookups flag should be off as well. Use a program like logresolve (or better yet, the resolver that comes as part of the ADNS library) to do post-processing on the logs. Do it on a separate machine, away from the web server, or during a time that is not busy.

    • Server Status: Enabling the server-status handler can be a good way to troubleshoot performance and get a feel for the way things work on your server, but disable it when you are done. It causes Apache to spend time keeping track of things you probably don't need during day-to-day operation.

  9. Start the web server and watch it. Using the server-status handler and good old 'ps' you can watch to see what Apache is doing. You can also begin to use 'ab', which ships with Apache, to benchmark the server. It helps if you benchmark the server from another, preferably faster machine.

  10. Watch the RS/6000 and AIX. You can use techniques described in our general AIX tuning document to tune tcp_sendspace, tcp_recvspace, thewall, and related networking parameters. You should probably crank the tcp_sendspace and tcp_recvspace settings to 512 KB or higher, and thewall to something very high. Depending on your memory settings you may wish to use vmtune to set minperm and maxperm to something like 10% and 50% and maxrandwrt to 32 4096 byte pages. Tuning the operating system and the machine are things you'll need to do continuously, based on the types of things your RS/6000 is doing.

  11. Other resources: Dean Gaudet's Apache Performance Notes,

Recommended Links

Google matched content

Softpanorama Recommended

Top articles

Sites



Etc

Society

Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

Quotes

War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes

Bulletin:

Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

History:

Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D


Copyright © 1996-2018 by Dr. Nikolai Bezroukov. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) in the author free time and without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case softpanorama.org is down you can use the at softpanorama.info

Disclaimer:

The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: September 12, 2017