Apache optimieren / Apache lahmt

combat

New Member
Moin, ich habe momentan das Problem, das zur Primetime zwischen 18-21 Uhr mein Apache strauchelt.

Hardware: Core 2 Duo 1,8 Ghz & 1 GB Ram
Auf dem Server läuft folgendes Script auf 8 Domains: PHProxy - Anonymizing PHP Web Proxy - sonst nix.
Unique Visitors habe ich so ca. 1000 am Tag (relativ gleichmässig auf alle Domains verteilt), 70 % davon zwischen 18-21 Uhr. Eigentlich nicht wirklich viel.
Momentan läuft Apache/2.0.54 & PHP 5.0.4 auf Fedora
MPM: Prefork
Verändert am Server hab ich noch nix, is also alles noch default wie zur übergabe.


Das sieht dann so aus:
Code:
Tasks: 210 total, 123 running,  87 sleeping,   0 stopped,   0 zombie
Cpu(s): 92.4% us,  6.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  1.6% si
Mem:   1026248k total,   998336k used,    27912k free,    15916k buffers
Swap:  2040244k total,     4892k used,  2035352k free,   493944k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16664 apache    16   0 52480  28m 3904 R  4.8  2.8   0:00.56 httpd
16632 apache    16   0 52672  28m 4012 R  4.6  2.8   0:00.86 httpd
16538 apache    16   0 52476  28m 4012 R  3.8  2.8   0:01.36 httpd
16579 apache    15   0 51928  27m 4012 S  3.8  2.8   0:00.88 httpd
16626 apache    16   0 52472  28m 4012 R  3.8  2.8   0:01.27 httpd
16631 apache    16   0 52460  27m 4012 R  3.8  2.8   0:01.04 httpd
16633 apache    16   0 52652  28m 4012 R  3.5  2.8   0:00.51 httpd
16595 apache    16   0 52572  28m 3920 R  3.2  2.8   0:00.50 httpd
16620 apache    16   0 52652  28m 4012 R  3.2  2.8   0:00.44 httpd
16644 apache    16   0 52472  28m 4012 R  3.2  2.8   0:00.78 httpd
16526 apache    16   0 52640  28m 4024 R  3.0  2.8   0:02.09 httpd
16604 apache    16   0 52648  28m 4012 R  3.0  2.8   0:00.83 httpd
16605 apache    16   0 52468  28m 3920 R  3.0  2.8   0:00.48 httpd
16638 apache    16   0 53048  28m 3996 R  3.0  2.8   0:00.33 httpd
16643 apache    16   0 52472  28m 4024 R  3.0  2.8   0:00.49 httpd
16655 apache    16   0 52648  28m 3904 R  3.0  2.8   0:00.71 httpd
16523 apache    16   0 52500  28m 4072 R  2.7  2.8   0:01.85 httpd
16539 apache    16   0 52476  28m 4056 R  2.7  2.8   0:01.63 httpd
16553 apache    16   0 52640  28m 4008 R  2.7  2.8   0:00.84 httpd
16580 apache    16   0 52632  28m 4036 R  2.7  2.8   0:00.70 httpd
16480 apache    16   0 52688  28m 4520 R  2.4  2.9   0:03.42 httpd
16481 apache    16   0 52672  28m 4520 R  2.4  2.9   0:03.14 httpd
16509 apache    16   0 52744  28m 4072 R  2.4  2.8   0:03.33 httpd
16544 apache    16   0 52696  28m 4012 R  2.4  2.8   0:01.65 httpd
16573 apache    16   0 52724  28m 3996 R  2.4  2.8   0:00.68 httpd
16583 apache    16   0 52628  28m 4012 R  2.4  2.8   0:00.75 httpd
16584 apache    16   0 52692  28m 3904 R  2.4  2.8   0:01.05 httpd
16601 apache    16   0 52468  28m 3904 R  2.4  2.8   0:00.73 httpd
16625 apache    16   0 52660  28m 3904 R  2.4  2.8   0:00.77 httpd
16646 apache    16   0 52512  28m 4060 R  2.4  2.8   0:00.51 httpd
16478 apache    16   0 52536  28m 4092 R  2.1  2.8   0:02.61 httpd
16529 apache    16   0 52488  28m 3996 R  2.1  2.8   0:01.22 httpd
16545 apache    16   0 52504  28m 4000 R  2.1  2.8   0:00.82 httpd
16563 apache    16   0 52624  28m 4476 R  2.1  2.9   0:00.73 httpd
16565 apache    16   0 51528  27m 3996 R  2.1  2.7   0:00.62 httpd
16575 apache    16   0 52708  28m 4012 R  2.1  2.8   0:00.91 httpd
16612 apache    16   0 52724  28m 4012 R  2.1  2.8   0:00.72 httpd
16614 apache    16   0 51892  27m 3996 R  2.1  2.8   0:00.60 httpd
16619 apache    16   0 52692  28m 3996 R  2.1  2.8   0:00.58 httpd
16621 apache    16   0 52632  28m 4024 R  2.1  2.8   0:00.43 httpd
16641 apache    16   0 51752  27m 3904 R  2.1  2.7   0:00.44 httpd
16648 apache    16   0 52432  28m 4024 R  2.1  2.8   0:00.74 httpd
16649 apache    16   0 52636  28m 4012 R  2.1  2.8   0:00.96 httpd
16652 apache    16   0 52464  28m 4012 R  2.1  2.8   0:00.97 httpd
16556 apache    16   0 51936  27m 4048 R  1.9  2.8   0:00.78 httpd
Oder so:
Code:
top - 04:52:25 up 19 days,  7:19,  1 user,  load average: 0.88, 10.04, 11.31
Tasks: 142 total,   3 running, 139 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.2% us, 12.9% sy,  0.0% ni, 30.4% id,  0.0% wa,  0.2% hi,  1.3% si
Mem:   1026248k total,   620692k used,   405556k free,    11196k buffers
Swap:  2040244k total,     4892k used,  2035352k free,   301844k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16823 apache    20   0 54340  29m 4084 R 91.4  3.0   0:05.55 httpd
17146 apache    15   0 51740  27m 4064 S  2.0  2.7   0:01.28 httpd
16963 apache    15   0 51608  27m 4484 S  1.3  2.8   0:01.57 httpd
17119 apache    16   0 51560  27m 4092 S  1.3  2.7   0:01.02 httpd
17278 apache    15   0 51560  27m 4036 S  1.3  2.7   0:01.26 httpd
16878 apache    15   0 51948  27m 4072 S  1.0  2.8   0:02.22 httpd
16998 apache    15   0 51660  27m 4520 S  1.0  2.8   0:01.53 httpd
17014 apache    15   0 51660  27m 4060 S  1.0  2.7   0:00.95 httpd
17101 apache    15   0 51740  27m 4072 S  1.0  2.7   0:01.20 httpd
17167 apache    15   0 51732  27m 4036 S  1.0  2.7   0:00.95 httpd
17220 apache    15   0 51640  27m 4068 S  1.0  2.7   0:00.57 httpd
17242 apache    15   0 51632  27m 4060 S  1.0  2.7   0:01.34 httpd
17289 apache    15   0 51476  27m 4024 S  1.0  2.7   0:00.49 httpd
16787 apache    15   0 51936  27m 4072 S  0.7  2.8   0:02.82 httpd
17078 apache    15   0 51636  27m 4072 S  0.7  2.7   0:01.26 httpd
17104 apache    15   0 51988  27m 4072 S  0.7  2.8   0:01.50 httpd
17148 apache    15   0 51732  27m 4072 S  0.7  2.7   0:01.55 httpd
17165 apache    15   0 51732  27m 4496 S  0.7  2.8   0:00.85 httpd
17203 apache    15   0 51656  27m 4036 S  0.7  2.7   0:00.56 httpd
17206 apache    15   0 51656  27m 4048 S  0.7  2.7   0:00.77 httpd
17227 apache    15   0 51656  27m 4508 S  0.7  2.8   0:01.06 httpd
17248 apache    15   0 51656  27m 4540 S  0.7  2.8   0:01.19 httpd
17257 apache    15   0 51656  27m 4512 S  0.7  2.8   0:01.00 httpd
17274 apache    15   0 51704  27m 4036 S  0.7  2.7   0:00.49 httpd
17280 apache    15   0 51524  27m 4060 S  0.7  2.7   0:00.54 httpd
17286 apache    15   0 51476  27m 4064 S  0.7  2.7   0:00.35 httpd
10826 root      15   0  9108 2664 2024 R  0.3  0.3   0:06.87 sshd
16565 apache    15   0 51528  27m 4064 S  0.3  2.7   0:05.17 httpd
16645 apache    15   0 52040  27m 4072 S  0.3  2.8   0:06.82 httpd
16757 apache    15   0 51940  27m 4036 S  0.3  2.8   0:02.55 httpd
16833 apache    15   0 51740  27m 4504 S  0.3  2.8   0:02.59 httpd
16836 apache    15   0 51892  27m 4072 S  0.3  2.8   0:01.69 httpd
16881 apache    15   0 51972  27m 4036 S  0.3  2.8   0:01.88 httpd
16922 apache    15   0 51936  27m 4072 S  0.3  2.8   0:01.67 httpd
16990 apache    15   0 51668  27m 4008 S  0.3  2.7   0:00.59 httpd
16999 apache    15   0 51660  27m 4064 S  0.3  2.7   0:01.22 httpd
17058 apache    15   0 51660  27m 4072 S  0.3  2.7   0:01.44 httpd
17067 apache    15   0 51660  27m 4484 S  0.3  2.8   0:00.75 httpd
17070 apache    15   0 51660  27m 4036 S  0.3  2.7   0:01.83 httpd
17128 apache    15   0 51700  27m 4072 S  0.3  2.7   0:01.38 httpd
17149 apache    15   0 51740  27m 4036 S  0.3  2.7   0:01.15 httpd
17154 apache    15   0 51740  27m 4072 S  0.3  2.7   0:01.40 httpd
17179 apache    15   0 51924  27m 4036 S  0.3  2.7   0:01.06 httpd
17209 apache    15   0 51904  28m 4520 S  0.3  2.8   0:00.83 httpd
17213 apache    15   0 51636  27m 3920 S  0.3  2.7   0:00.40 httpd

httpd.conf:
Code:
Timeout 150

#
KeepAlive Off

#
MaxKeepAliveRequests 100

#
KeepAliveTimeout 15

# 
<IfModule prefork.c>
StartServers      10
MinSpareServers   10
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild 200
</IfModule>

# <IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75 
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>
#
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule auth_anon_module modules/mod_auth_anon.so
LoadModule auth_dbm_module modules/mod_auth_dbm.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule auth_ldap_module modules/mod_auth_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule jk_module /usr/lib/httpd/modules/mod_jk.so

#
Include conf.d/*.conf

#
#ExtendedStatus On

#
User apache
Group apache

### Section 2: 'Main' server configuration
#
ServerAdmin root@localhost

#
#ServerName www.example.com:80

#
UseCanonicalName Off

#
DocumentRoot "/var/www/html"

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

#
<Directory "/var/www/html">

#
    Options Indexes FollowSymLinks

#
    AllowOverride None

#
    Order allow,deny
    Allow from all

</Directory>

#

<IfModule mod_userdir.c>
       #
    UserDir disable

       # 
    #UserDir public_html

</IfModule>

#
#<Directory /home/*/public_html>
#    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    <Limit GET POST OPTIONS>
#        Order allow,deny
#        Allow from all
#    </Limit>
#    <LimitExcept GET POST OPTIONS>
#        Order deny,allow
#        Deny from all
#    </LimitExcept>
#</Directory>

#
DirectoryIndex at_domains_index.html index.html index.html.var index.shtml index.cfm index.php index.htm

#
AccessFileName .htaccess

#
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

#
TypesConfig /etc/mime.types


#
DefaultType text/plain

#
<IfModule mod_mime_magic.c>
#   MIMEMagicFile /usr/share/magic.mime
    MIMEMagicFile conf/magic
</IfModule>

#
HostnameLookups Off

#
#EnableMMAP off

#
#EnableSendfile off

#
ErrorLog logs/error_log

#
LogLevel warn

#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

# "combinedio" includes actual counts of actual bytes received (%I) and sent (%O); this
# requires the mod_logio module to be loaded.
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

#
#CustomLog logs/access_log common

#
#CustomLog logs/referer_log referer
#CustomLog logs/agent_log agent
#
CustomLog logs/access_log combined

#
ServerSignature On

#
Alias /icons/ "/var/www/icons/"

<Directory "/var/www/icons">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

#
# WebDAV module configuration section.
# 
<IfModule mod_dav_fs.c>
    # Location of the WebDAV lock database.
    DAVLockDB /var/lib/dav/lockdb
</IfModule>

#
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

#
IndexOptions FancyIndexing VersionSort NameWidth=*

#
# AddIcon* directives tell the server which icon to show for different
# files or filename extensions.  These are only displayed for
# FancyIndexed directories.
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^

#
DefaultIcon /icons/unknown.gif

#
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz

# directory indexes. 
ReadmeName README.html
HeaderName HEADER.html

#
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

#
# DefaultLanguage nl
#
#
# Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl)
# English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de)
# Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja)
# Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn)
# Norwegian (no) - Polish (pl) - Portugese (pt)
# Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv)
# Simplified Chinese (zh-CN) - Spanish (es) - Traditional Chinese (zh-TW)
#
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw

#
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

#
ForceLanguagePriority Prefer Fallback

#
#AddDefaultCharset UTF-8

#
#AddType application/x-tar .tgz

#
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz

#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

#
#AddHandler cgi-script .cgi

#
#AddHandler send-as-is asis

#
AddHandler type-map var

#
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location
#

#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#


Alias /error/ "/var/www/error/"

<IfModule mod_negotiation.c>
<IfModule mod_include.c>
    <Directory "/var/www/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback
    </Directory>

#    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
#    ErrorDocument 410 /error/HTTP_GONE.html.var
#    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
#    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

</IfModule>
</IfModule>

#
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
#
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully

.
#
#<Location /server-status>
#    SetHandler server-status
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>

#
#<Location /server-info>
#    SetHandler server-info
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>

#
#<IfModule mod_proxy.c>
#ProxyRequests On
#
#<Proxy *>
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Proxy>

#
#ProxyVia On

#
#<IfModule mod_disk_cache.c>
#   CacheEnable disk /
#   CacheRoot "/var/cache/mod_proxy"
#</IfModule>
#

#</IfModule>
# End of proxy directives.

#
#NameVirtualHost *:80
#
#
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps


php.ini:
Code:
;
; - register_globals = Off         [Security, Performance]
;    ; - register_long_arrays = Off     [Performance]
;    ; - display_errors = Off           [Security]
;    ; - log_errors = On                [Security]
;     ; - output_buffering = 4096        [Performance]
;     ; - register_argc_argv = Off       [Performance]
;     ; - magic_quotes_gpc = Off         [Performance]
;     
; - variables_order = "GPCS"       [Performance]
;     ; - error_reporting = E_ALL        [Code Cleanliness, Security(?)]
;     ; - allow_call_time_pass_reference = Off     [Code cleanliness]
;    

;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;


engine = On

; Enable compatibility mode with Zend Engine 1 (PHP 4.x)
zend.ze1_compatibility_mode = Off

short_open_tag = On

asp_tags = Off
precision    =  14

y2k_compliance = On

output_buffering = 4096

;output_handler =

zlib.output_compression = On

;zlib.output_handler =

implicit_flush = Off

unserialize_callback_func=

serialize_precision = 100

allow_call_time_pass_reference = Off

;
; Safe Mode
;
safe_mode=off

safe_mode_gid = Off

safe_mode_include_dir =
safe_mode_exec_dir =

safe_mode_allowed_env_vars = PHP_

safe_mode_protected_env_vars = LD_LIBRARY_PATH

;open_basedir =

disable_functions =

disable_classes =

; Colors for Syntax Highlighting mode.  Anything that's acceptable in
; <span style="color: ???????"> would work.
;highlight.string  = #DD0000
;highlight.comment = #FF9900
;highlight.keyword = #007700
;highlight.bg      = #FFFFFF
;highlight.default = #0000BB
;highlight.html    = #000000


;
expose_php = On


;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 30    
max_input_time = 60	
memory_limit = 32M


display_errors = Off

display_startup_errors = Off

log_errors = On

log_errors_max_len = 1024

ignore_repeated_errors = Off

ignore_repeated_source = Off

report_memleaks = On


track_errors = Off

;html_errors = Off

;docref_root = "/phpmanual/"
;docref_ext = .html


;error_prepend_string = "<font color=ff0000>"


;error_append_string = "</font>"


;error_log = filename


;error_log = syslog


;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
; Default is "&".
;arg_separator.output = "&amp;"

;arg_separator.input = ";&"

variables_order = "EGPCS"

register_globals = Off
register_long_arrays = Off

register_argc_argv = On


post_max_size =25M

; Magic quotes
;


magic_quotes_gpc = Off


magic_quotes_runtime = Off

magic_quotes_sybase = Off

auto_prepend_file =
auto_append_file =

default_mimetype = "text/html"
;default_charset = "iso-8859-1"


;always_populate_raw_post_data = Off


;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"

include_path = ".:"

doc_root =

user_dir =

extension_dir = "/usr/lib/php/modules"

enable_dl = On

; ; cgi.force_redirect = 1

; cgi.nph = 1

; cgi.redirect_status_env = ;

; fastcgi.impersonate = 1;

;cgi.rfc2616_headers = 0


file_uploads = On


;upload_tmp_dir =

upload_max_filesize = 2M


allow_url_fopen = On


;from="john@doe.com"

; ; user_agent="PHP"


default_socket_timeout = 60

; auto_detect_line_endings = Off


define_syslog_variables  = Off
SMTP = localhost
smtp_port = 25

;sendmail_from = me@example.com

sendmail_path = /usr/sbin/sendmail -t -i

;mail.force_extra_parameters =

[SQL]
sql.safe_mode = Off

[ODBC]
;odbc.default_db    =  Not yet implemented
;odbc.default_user  =  Not yet implemented
;odbc.default_pw    =  Not yet implemented


odbc.allow_persistent = On


odbc.check_persistent = On

.
odbc.max_persistent = -1


odbc.max_links = -1


odbc.defaultlrl = 4096

odbc.defaultbinmode = 1

[MySQL]
; Allow or prevent persistent links.
mysql.allow_persistent = On


mysql.max_persistent = -1


mysql.max_links = -1

mysql.default_port =

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).
mysql.default_host =

;mysql.default_user =

mysql.default_password =

; Maximum time (in secondes) for connect timeout. -1 means no limit
mysql.connect_timeout = 60

mysql.trace_mode = Off

[MySQLI]

; Maximum number of links.  -1 means no limit.
mysqli.max_links = -1

mysqli.default_port = 3306

mysqli.default_socket =

mysqli.default_host =


mysqli.default_user =
mysqli.default_password =

mysqli.reconnect = Off

[mSQL]

msql.allow_persistent = On


msql.max_persistent = -1


msql.max_links = -1

[PostgresSQL]

pgsql.allow_persistent = On

pgsql.auto_reset_persistent = Off

pgsql.max_persistent = -1

pgsql.max_links = -1

pgsql.ignore_notice = 0

pgsql.log_notice = 0

[Sybase]
sybase.allow_persistent = On

sybase.max_persistent = -1


sybase.max_links = -1



sybase.min_error_severity = 10

sybase.min_message_severity = 10

sybase.compatability_mode = Off

[Sybase-CT]
sybct.allow_persistent = On

; Maximum number of persistent links.  -1 means no limit.
sybct.max_persistent = -1

; Maximum number of links (persistent + non-persistent).  -1 means no limit.
sybct.max_links = -1

; Minimum server message severity to display.
sybct.min_server_severity = 10

; Minimum client message severity to display.
sybct.min_client_severity = 10

[dbx]
; returned column names can be converted for compatibility reasons
; possible values for dbx.colnames_case are
; "unchanged" (default, if not set)
; "lowercase"
; "uppercase"
; the recommended default is either upper- or lowercase, but
; unchanged is currently set for backwards compatibility
dbx.colnames_case = "lowercase"

[bcmath]
; Number of decimal digits for all bcmath functions.
bcmath.scale = 0

[browscap]
;browscap = extra/browscap.ini

[Informix]
ifx.default_host =

ifx.default_user =

ifx.default_password =


ifx.allow_persistent = On


ifx.max_persistent = -1

ifx.max_links = -1


ifx.textasvarchar = 0


ifx.byteasvarchar = 0


ifx.charasvarchar = 0

ifx.blobinfile = 0

ifx.nullformat = 0

[Session]
session.save_handler = files


session.save_path = "/var/lib/php/session"


session.use_cookies = 1

session.name = PHPSESSID

session.auto_start = 0

session.cookie_lifetime = 0

session.cookie_path = /

session.cookie_domain =

session.serialize_handler = php


session.gc_probability = 1
session.gc_divisor     = 1000

session.gc_maxlifetime = 1440



session.bug_compat_42 = 0
session.bug_compat_warn = 1

session.referer_check =

session.entropy_length = 0

session.entropy_file =

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

session.cache_limiter = nocache

session.cache_expire = 180

session.use_trans_sid = 0

session.hash_function = 0

session.hash_bits_per_character = 5

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

[MSSQL]
mssql.allow_persistent = On

mssql.max_persistent = -1

mssql.max_links = -1

mssql.min_error_severity = 10

mssql.min_message_severity = 10

mssql.compatability_mode = Off

;mssql.connect_timeout = 5

;mssql.timeout = 60

;mssql.textlimit = 4096


;mssql.textsize = 4096


;mssql.batchsize = 0

;mssql.datetimeconvert = On


mssql.secure_connection = Off


;mssql.max_procs = 25

[Assertion]

;assert.active = On


;assert.warning = On


;assert.bail = Off


;assert.callback = 0


;assert.quiet_eval = 0

[Ingres II]
ingres.allow_persistent = On
ingres.max_persistent = -1


ingres.max_links = -1


ingres.default_database =

ingres.default_user =


ingres.default_password =

[Verisign Payflow Pro]
pfpro.defaulthost = "test-payflow.verisign.com"

pfpro.defaultport = 443


pfpro.defaulttimeout = 30


;pfpro.proxyaddress =


;pfpro.proxyport =


;pfpro.proxylogon =


;pfpro.proxypassword =

[com]

[mbstring]

;mbstring.language = Japanese


;mbstring.internal_encoding = EUC-JP


;mbstring.http_input = auto


;mbstring.http_output = SJIS



;mbstring.substitute_character = none;

;mbstring.func_overload = 0

[FrontBase]

[exif]
;exif.encode_unicode = ISO-8859-15
;exif.decode_unicode_motorola = UCS-2BE
;exif.decode_unicode_intel    = UCS-2LE
;exif.encode_jis =
;exif.decode_jis_motorola = JIS
;exif.decode_jis_intel    = JIS

[Tidy]
;tidy.default_config = /usr/local/lib/php/default.tcfg

tidy.clean_output = Off

[soap]
; Enables or disables WSDL caching feature.
soap.wsdl_cache_enabled=1
; Sets the directory name where SOAP extension will put cache files.
soap.wsdl_cache_dir="/tmp"
; (time to live) Sets the number of second while cached file will be used 
; instead of original one.
soap.wsdl_cache_ttl=86400

; Local Variables:
; tab-width: 4
; End:


Teilweise verbrauchen die einzelnen Apache Prozesse auch hammer viel CPU, wie man oben erkennen kann. Und Tasks, running wie
sleeping schaukeln sich auch ganz schön hoch.
Hat jemand ne Idee ob ich hier Serverseitig abhilfe schaffen kann oder liegt es vieleicht sogar am Script ?

Ich Danke schon mal für Eure Hilfe ...
 
Last edited by a moderator:
16823 apache 20 0 54340 29m 4084 R 91.4 3.0 0:05.55 httpd
Wenn ein httpd 91% CPU Last zieht, solltest Du das mal untersuchen.
Vorallem, da er auch einige Sekunden lang zieht.
Nutze mod_status mit "ExtendedStatus On" um zusehen, welches Script es ist.

KeepAlive Off
Evtl. könnte hier ein "On" mit einem Timeout von 5 besser sein.
Mußt Du ausprobieren.

ServerLimit 256
Den kannst Du theoretisch solange erhöhen wie noch kein Swap-Speicher genutzt wird.

LoadModule ...
Da kann man sicherlich einiges rausschmeißen um Speicher zu sparen. (Z.B. die ganzen Proxy-Module und viele mehr.)

#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .example.com
#</Location>
Ausskommentieren und Allow auf Deine aktuelle Dialin-IP stellen.
Dann kannst Du mit http://IP/server-status o.g. Status und Threads genauer ansehen.

Hat jemand ne Idee ob ich hier Serverseitig abhilfe schaffen kann oder liegt es vieleicht sogar am Script ?
Das es am Script liegt ist gar nicht mal soweit her geholt. Es kann aber auch an den Clients liegen.
Wie gesagt: erstmal Server-Status ansehen. Dann sehen wir weiter.

huschi.
 
Moin, erstmal besten Dank für Deine Ideen :)

Status und Threads werd ich mir Heute Abend zur Primetime mal genauer anschauen. Muss ich noch auf was bestimmtes achten oder nur auf den Client/Thread und die CPU Last ?

Anschliessend werd ich dann mal beim Keepalive und ServerLimit rumprobieren.


Die ganzen Proxy Module hab ich jetzt mal entfernt, was könnte denn z.B. noch raus ?

Könnte es sonst vieleicht auch am MPM Prefork oder den MPM Einstellungen liegen (Mal abgesehen vom schon angesprochenen Server Limit) Der Apache ist für mich noch ein ziemlich unbeschriebenes Blatt :o
 
Ich habe mir jetzt mel ne ganze Weile den Server-Status angeschaut, da der Traffic jetzt schon steigt.

Ich hab aber keine Ahnugn auf was ich dort achten muss, mir sagt das alles herzlich wenig.

Zumal CPU Load im Server-Status durchgehend ausschließlich bei um die 1,5% liegt, unter Top aber momentan bei minimum 5% bis maximum 50%

Hast Du nochmal nen Tipp für mich ?
 
Last edited by a moderator:
Ich hab aber keine Ahnugn auf was ich dort achten muss, mir sagt das alles herzlich wenig.
Mmmmh, was könnte man da machen....
Vielleicht sich in ein stilles Kämmerlein verziehen und traurig sein?
Oder einfach den Output hier posten und sich die Sache erklären lassen?

huschi.
 
Heißt das Du hast immer noch einen httpd-Prozess mit über 90%?
Ist seine PID im Status aufgelistet?

huschi.
 
MaxRequestsPerChild 200

ist ein bissel niedrig? Das Neuforken von Prozessen macht ja auch Last... aber daran wirds net liegen.

Sind halt sehr wenige Angaben, wir kennen das Script ja auch nicht.
 
Momentan nicht mit 90% , geht jetzt teilweise bis 50% hoch.

Ich weiss jetzt auch nicht ob das Straucheln des Apaches an der hohen CPU Auslastung oder an den vielen Prozessen liegt. In der Primetime ist das ganze bild bei "Top" ja mit apaches zugepflastert.

PID ist auch dabei, teilweise ist die gleiche PID mehrmals zu finden. Ein Muster habe ich jetzt auch nicht erkennen können.Mal war es:

30-0 8803 0/102/4233 W 4.27 0 0 0.0 1.17 51.58 82.83.143.31 default GET /server-status HTTP/1.1
oder
29-0 8788 0/157/4581 _ 2.88 0 123 0.0 1.68 46.35 166.102.136.58 domain.tld GET /index.php?q=aHR0cDovL2E3NjEuYWMtaW1hZ2VzLm15c3BhY2VjZG4uY2
oder
102-0 8925 0/6/658 _ 0.76 1 1373 0.0 0.11 6.89 169.139.1.20 anderedomain.tld GET /index.php?q=aHR0cDovL3Byb2ZpbGUubXlzcGFjZS5jb20vaW5kZXguY2
 
Last edited by a moderator:
Code:
Timeout 15

#
KeepAlive On

#
MaxKeepAliveRequests 1000

#
KeepAliveTimeout 2

# 
<IfModule prefork.c>
StartServers      10
MinSpareServers   10
MaxSpareServers   20
ServerLimit      250
MaxClients       250
MaxRequestsPerChild 8000
</IfModule>

und dein Server rockt :)

Apache + MySQL optimieren
 
Last edited by a moderator:
Leute gibts, aber gut das einer die Apache Weltformel gefunden hat...
 
Danke Andre.Ho für diesen sehr wertvollen Beitrag. :rolleyes:

noto hat eine von vielen Konfigurationsmöglichkeiten angebracht.
Unteranderem sind entscheidend welchen Ressourcen zur Verfügung stehen und wieviel User der Server gleichzeitig handhaben muss.

So eine Konfig kann man nicht pauschalisieren.
Gegebenfalls muss man halt ein bisschen experimentieren bis er den Anforderungen entspricht.
 
Back
Top