Guten Abend,
da ich seit einigen Tagen mit meinem vServer an die Ram-Leistungsgrenze stoße
(can't fork in den logs) habe ich versucht herauszufinden welcher Dienst dahintersteckt.
Und siehe da es ist lighttpd, den ich eigentlich wegen seinem geringen Speicherverbrauch einsetze.
Überzeugt euch selbst:
Die Seite wird nur von mir selbst besucht, es wird kein ISPCP o.ä. benutzt.
hier mal di config:
mysql_vhost.py ladet das folgende aus einer Datenbank:
Wie kann ich denn hier den Speicherverbrauch noch verringern? Alle unnötigen Module sind ja schon deaktiviert. OS ist ein Debian Etch das soeben auf Lenny geupdated wurde.
da ich seit einigen Tagen mit meinem vServer an die Ram-Leistungsgrenze stoße
(can't fork in den logs) habe ich versucht herauszufinden welcher Dienst dahintersteckt.
Und siehe da es ist lighttpd, den ich eigentlich wegen seinem geringen Speicherverbrauch einsetze.
Überzeugt euch selbst:
Code:
root@srv:/etc/lighttpd/conf-enabled# vpsmem
----- VPS Speichernutzung ----
[XXXXXXXXXXXXXXXXXXXXXX------]
Momentan: 74% Barriere
Fehlversuche: 0 Fehler
------------------------------
Momentan genutzt: 572 MB
Maximal genutzt: 662 MB
Barriere: 768 MB
Limit: 768 MB
------------------------------
Zugesichert: 512 MB
------------------------------
root@srv:/etc/lighttpd/conf-enabled# /etc/init.d/lighttpd stop
Stopping web server: lighttpd.
root@srv:/etc/lighttpd/conf-enabled# vpsmem
----- VPS Speichernutzung ----
[XXXXXXXXXX------------------]
Momentan: 33% Barriere
Fehlversuche: 0 Fehler
------------------------------
Momentan genutzt: 257 MB
Maximal genutzt: 662 MB
Barriere: 768 MB
Limit: 768 MB
------------------------------
Zugesichert: 512 MB
------------------------------
hier mal di config:
Code:
# Debian lighttpd configuration file
#
############ Options you really have to take care of ####################
## modules to load
# mod_access, mod_accesslog and mod_alias are loaded by default
# all other module should only be loaded if neccesary
# - saves some time
# - saves memory
server.modules = (
"mod_access",
"mod_auth",
"mod_alias",
"mod_fastcgi",
"mod_accesslog",
# "mod_proxy",
# "mod_rewrite",
# "mod_redirect",
# "mod_status",
# "mod_evhost",
# "mod_compress",
# "mod_usertrack",
# "mod_rrdtool",
# "mod_webdav",
# "mod_expire",
# "mod_flv_streaming",
# "mod_evasive"
)
## a static document-root, for virtual-hosting take look at the
## server.virtual-* options
server.document-root = "/srv/www"
## where to send error-messages to
server.errorlog = "/var/log/lighttpd/error.log"
## files to check for if .../ is requested
index-file.names = ( "index.html", "index.php",
"index.htm", "default.htm" )
## Use the "Content-Type" extended attribute to obtain mime type if possible
# mimetype.use-xattr = "enable"
#### accesslog module
accesslog.filename = "/var/log/lighttpd/access.log"
## deny access the file-extensions
#
# ~ is for backupfiles from vi, emacs, joe, ...
# .inc is often used for code includes which should in general not be part
# of the document-root
url.access-deny = ( "~", ".inc" )
######### Options that are good to be but not neccesary to be changed #######
## bind to port (default: 80)
# server.port = 81
## bind to localhost only (default: all interfaces)
## server.bind = "localhost"
## error-handler for status 404
#server.error-handler-404 = "/error-handler.html"
#server.error-handler-404 = "/error-handler.php"
## to help the rc.scripts
server.pid-file = "/var/run/lighttpd.pid"
##
## Format: <errorfile-prefix><status>.html
## -> ..../status-404.html for 'File not found'
#server.errorfile-prefix = "/var/www/"
## virtual directory listings
dir-listing.encoding = "utf-8"
server.dir-listing = "enable"
## send unhandled HTTP-header headers to error-log
#debug.dump-unknown-headers = "enable"
### only root can use these options
#
# chroot() to directory (default: no chroot() )
#server.chroot = "/"
## change uid to <uid> (default: don't care)
server.username = "www-data"
## change uid to <uid> (default: don't care)
server.groupname = "www-data"
#### compress module
#compress.cache-dir = "/var/tmp/lighttpd/cache/compress/"
#compress.filetype = ("text/plain", "text/html")
#### status module
status.status-url = "/server-status"
# status.config-url = "/server-config"
#### url handling modules (rewrite, redirect, access)
# url.rewrite = ( "^/$" => "/server-status" )
# url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )
#
# define a pattern for the host url finding
# %% => % sign
# %0 => domain name + tld
# %1 => tld
# %2 => domain name without tld
# %3 => subdomain 1 name
# %4 => subdomain 2 name
#
# evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/"
#### expire module
# expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")
#### rrdtool
# rrdtool.binary = "/usr/bin/rrdtool"
# rrdtool.db-name = "/var/www/lighttpd.rrd"
#### handle Debian Policy Manual, Section 11.5. urls
#### and by default allow them only from localhost
$HTTP["remoteip"] =~ "127.0.0.1" {
alias.url += (
"/doc/" => "/usr/share/doc/",
"/images/" => "/usr/share/images/"
)
$HTTP["url"] =~ "^/doc/|^/images/" {
dir-listing.activate = "enable"
}
}
#### variable usage:
## variable name without "." is auto prefixed by "var." and becomes "var.bar"
#bar = 1
#var.mystring = "foo"
## integer add
#bar += 1
## string concat, with integer cast as string, result: "www.foo1.com"
#server.name = "www." + mystring + var.bar + ".com"
## array merge
#index-file.names = (foo + ".php") + index-file.names
#index-file.names += (foo + ".php")
fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php5-cgi",
"socket" => "/tmp/php.socket",
"max-procs" => 2,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "16",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"
),
"broken-scriptfilename" => "enable"
)))
# configuration for authetification module
auth.debug = 2
auth.backend = "plain"
auth.backend.plain.userfile="/srv/www/.lighttpdpassword"
#### external configuration files
## mimetype mapping
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
## load enabled configuration files,
## read /etc/lighttpd/conf-available/README first
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
include_shell "/usr/share/lighttpd/mysql_vhost.py"
mysql_vhost.py ladet das folgende aus einer Datenbank:
Code:
$HTTP["host"] == "www.meinedomain.tld" {
server.document-root = "/srv/www/meinedomain.tld/htdocs/"
dir-listing.activate = "disable"
accesslog.filename = "/srv/www/meinedomain.tld/log/access.log"
server.errorlog = "/srv/www/webmail.meinedomain.tld/log/error.log"
accesslog.format = "%{Udm_Remote_Addr}i %V %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
}
$HTTP["host"] == "tmp.meinedomain.tld" {
server.document-root = "/srv/www/tmp.meinedomain.tld/htdocs/"
dir-listing.activate = "enable"
accesslog.filename = "/srv/www/tmp.meinedomain.tld/log/access.log"
server.errorlog = "/srv/www/webmail.meinedomain.tld/log/error.log"
accesslog.format = "%{Udm_Remote_Addr}i %V %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
auth.require = ( "/phpsysinfo/" =>
(
"method" => "basic",
"realm" => "Password protected area",
"require" => "user=sysinfo"
)
)
}
$HTTP["host"] == "webmail.meinedomain.tld" {
server.document-root = "/srv/www/webmail.meinedomain.tld/htdocs/"
dir-listing.activate = "disable"
accesslog.filename = "/srv/www/webmail.meinedomain.tld/log/access.log"
server.errorlog = "/srv/www/webmail.meinedomain.tld/log/error.log"
accesslog.format = "%{Udm_Remote_Addr}i %V %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
auth.require = ( "" =>
(
"method" => "basic",
"realm" => "Password protected area",
"require" => "user=webmail"
)
)
}
$HTTP["host"] == "privat.meinedomain.tld" {
server.document-root = "/srv/www/privat.meinedomain.tld/htdocs/"
dir-listing.activate = "enable"
accesslog.filename = "/srv/www/privat.meinedomain.tld/log/access.log"
server.errorlog = "/srv/www/privat.meinedomain.tld/log/error.log"
accesslog.format = "%{Udm_Remote_Addr}i %V %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
auth.require = ( "" =>
(
"method" => "basic",
"realm" => "private area",
"require" => "user=privat"
)
)
}