ermin
21.04.2008, 22:03
Das Forum läuft bei einer Anzahl von ca. 50 aktiven Benutzern stabil und schnell. Allerdings kommt es zu extremen Performance-Einbußen ab ca. 100 aktiven Benutzern.
Das Forum wurde vor kurzem von einem einzigen Server mit weniger Prozessor-Power aber 16GB Arbeitsspeicher auf die unten beschriebenen Systeme migriert. Bisher lief das Forum allerdings bei gleichen Zugriffszahlen erheblich schneller. Kann es sein, dass die Probleme nur an zu wenig Arbeitsspeicher des Datenbankservers liegen?
Über Hilfestellungen und Tipps von erfahrenen vBulletin Administratoren würde ich mich sehr freuen.
Seit dem Umzug werden übrigens auch die Hits nicht mehr gezählt. In den Logfiles tauchen allerdings keine relevanten PHP-Fehlermeldungen auf.
Angaben zum Forum
Themen: ca. 26.500
Beiträge: ca. 1.150.000
Benutzer: ca. 22.500
Aktive Benutzer: ca. 1.200
Durchschnittliche Zugriffzahlen pro Tag
Besucher: 1800
Besuche: 3600
Seitenzugriffe: 46.000
Hardware
Webserver
DELL PE 2950 III
2 x IX E5405 Quad Core
4096 MB FB RAM
2x146 GB SAS HDD Raid-1
Datenbankserver
DELL PE 2950 III
2 x IX E5405 Quad Core
4096 MB FB RAM
2x146 GB SAS HDD Raid-1
Auf beiden Systemen kommt das Betriebssystem Red Hat EL 4 in aktuellster Version zum Einsatz. Die beiden Server sind über einen dedizierten Switch angebunden und mit 200 Mbits ans Internet angebunden.
Webserver-Konfiguration
Apache 2.0.52 mit folgenden Einstellungen:
Timeout 30
KeepAlive On
MaxKeepAliveRequests 150
KeepAliveTimeout 1
HostnameLookups Off
<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 1000
</IfModule>
<ifmodule mod_expires.c>
<filesmatch "\.(jpg|gif|png|css|js|swf)$">
ExpiresActive on
ExpiresDefault "access plus 1 month"
</filesmatch>
</ifmodule>
Header unset ETag
FileETag None
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE text/html
PHP 5.2.5 u.a. mit folgenden Modulen:
eAccelerator 0.9.5.2
eaccelerator.shm_size="64"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
ZendOptimizer 3.3.0a
Optimization Pass 1 = enabled
Optimization Pass 2 = enabled
Optimization Pass 3 = enabled
Optimization Pass 4 = enabled
Optimization Pass 9 = enabled
Obfuscation level = 3
vBulletin 3.6.8 Patch Level 2 mit folgenden Add-ons:
AdminCP Top 10 Statistic 1.00
Custom Queries 1.02
EZ Bounce Management 1.8
Inferno Warning System 1.3
IpInfo 1.3
MarioK - Boardregeln 2.00
MarioK - Impressum 2.00
Template Modification System 1.0.0
vbgooglemap Member Edition by StonyArc 2.5.1
vBI-Gallery 1.23
vBSEO 3.0.0
vBSEO :: Sitemap Generator 2.0
Datenbankserver-Konfiguration
mySQL 5.0.45-community mit folgenden Einstellungen:
[mysqld]
safe-show-database
back_log = 50
skip-innodb
max_connections = 800
key_buffer_size = 16M
myisam_sort_buffer_size = 128M
join_buffer_size = 2M
read_buffer_size = 2M
sort_buffer_size = 4M
table_cache = 6000
thread_cache_size = 768
wait_timeout = 15
connect_timeout = 10
tmp_table_size = 64M
max_heap_table_size = 64M
max_allowed_packet = 64M
net_buffer_length = 16384
max_connect_errors = 10
thread_concurrency = 16
concurrent_insert = 2
table_lock_wait_timeout = 30
read_rnd_buffer_size = 2M
bulk_insert_buffer_size = 8M
query_cache_limit = 6M
query_cache_size = 288M
query_cache_type = 1
query_prealloc_size = 262144
query_alloc_block_size = 65536
transaction_alloc_block_size = 8192
transaction_prealloc_size = 4096
default-storage-engine = MyISAM
max_write_lock_count = 16
[mysqld_safe]
nice = -10
open_files_limit = 8192
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M
Top des Webservers
top - 21:31:59 up 7 days, 6:36, 2 users, load average: 0.23, 0.22, 0.24
Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.4% us, 0.2% sy, 0.0% ni, 96.3% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 4036928k total, 3539520k used, 497408k free, 177056k buffers
Swap: 2040244k total, 0k used, 2040244k free, 2915856k cached
PID USER PR NI %CPU TIME+ %MEM VIRT RES SHR S COMMAND
31642 apache 15 0 5 0:00.65 0.4 219m 15m 9280 S httpd
31681 apache 15 0 5 0:00.52 0.3 219m 13m 7340 S httpd
31634 apache 16 0 5 0:00.80 0.3 219m 13m 7508 S httpd
31661 apache 16 0 4 0:00.59 0.3 219m 12m 6904 S httpd
31632 apache 15 0 2 0:00.53 0.3 219m 13m 7684 S httpd
31645 apache 15 0 2 0:00.68 0.3 219m 13m 7656 S httpd
31620 apache 16 0 1 0:00.81 0.5 224m 17m 7836 S httpd
31628 apache 16 0 1 0:00.79 0.6 225m 22m 11m S httpd
31664 apache 16 0 1 0:00.27 0.4 224m 17m 7356 S httpd
31688 apache 16 0 1 0:00.18 0.4 224m 15m 5916 S httpd
31689 apache 16 0 1 0:00.25 0.4 224m 15m 5928 S httpd
31627 apache 15 0 0 0:00.85 0.3 219m 13m 7844 S httpd
31650 apache 15 0 0 0:00.62 0.3 219m 13m 7488 S httpd
Top des Datenbankservers
top - 21:32:53 up 7 days, 6:33, 1 user, load average: 10.01, 11.34, 10.82
Tasks: 99 total, 2 running, 97 sleeping, 0 stopped, 0 zombie
Cpu(s): 40.2% us, 58.6% sy, 0.0% ni, 1.1% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 4036928k total, 3935656k used, 101272k free, 337128k buffers
Swap: 2040244k total, 208k used, 2040036k free, 252772k cached
PID USER PR NI %CPU TIME+ %MEM VIRT RES SHR S COMMAND
3623 mysql 5 -10 791 22:20.74 1.3 390m 51m 4448 S mysqld
Das Forum wurde vor kurzem von einem einzigen Server mit weniger Prozessor-Power aber 16GB Arbeitsspeicher auf die unten beschriebenen Systeme migriert. Bisher lief das Forum allerdings bei gleichen Zugriffszahlen erheblich schneller. Kann es sein, dass die Probleme nur an zu wenig Arbeitsspeicher des Datenbankservers liegen?
Über Hilfestellungen und Tipps von erfahrenen vBulletin Administratoren würde ich mich sehr freuen.
Seit dem Umzug werden übrigens auch die Hits nicht mehr gezählt. In den Logfiles tauchen allerdings keine relevanten PHP-Fehlermeldungen auf.
Angaben zum Forum
Themen: ca. 26.500
Beiträge: ca. 1.150.000
Benutzer: ca. 22.500
Aktive Benutzer: ca. 1.200
Durchschnittliche Zugriffzahlen pro Tag
Besucher: 1800
Besuche: 3600
Seitenzugriffe: 46.000
Hardware
Webserver
DELL PE 2950 III
2 x IX E5405 Quad Core
4096 MB FB RAM
2x146 GB SAS HDD Raid-1
Datenbankserver
DELL PE 2950 III
2 x IX E5405 Quad Core
4096 MB FB RAM
2x146 GB SAS HDD Raid-1
Auf beiden Systemen kommt das Betriebssystem Red Hat EL 4 in aktuellster Version zum Einsatz. Die beiden Server sind über einen dedizierten Switch angebunden und mit 200 Mbits ans Internet angebunden.
Webserver-Konfiguration
Apache 2.0.52 mit folgenden Einstellungen:
Timeout 30
KeepAlive On
MaxKeepAliveRequests 150
KeepAliveTimeout 1
HostnameLookups Off
<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 1000
</IfModule>
<ifmodule mod_expires.c>
<filesmatch "\.(jpg|gif|png|css|js|swf)$">
ExpiresActive on
ExpiresDefault "access plus 1 month"
</filesmatch>
</ifmodule>
Header unset ETag
FileETag None
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE text/html
PHP 5.2.5 u.a. mit folgenden Modulen:
eAccelerator 0.9.5.2
eaccelerator.shm_size="64"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
ZendOptimizer 3.3.0a
Optimization Pass 1 = enabled
Optimization Pass 2 = enabled
Optimization Pass 3 = enabled
Optimization Pass 4 = enabled
Optimization Pass 9 = enabled
Obfuscation level = 3
vBulletin 3.6.8 Patch Level 2 mit folgenden Add-ons:
AdminCP Top 10 Statistic 1.00
Custom Queries 1.02
EZ Bounce Management 1.8
Inferno Warning System 1.3
IpInfo 1.3
MarioK - Boardregeln 2.00
MarioK - Impressum 2.00
Template Modification System 1.0.0
vbgooglemap Member Edition by StonyArc 2.5.1
vBI-Gallery 1.23
vBSEO 3.0.0
vBSEO :: Sitemap Generator 2.0
Datenbankserver-Konfiguration
mySQL 5.0.45-community mit folgenden Einstellungen:
[mysqld]
safe-show-database
back_log = 50
skip-innodb
max_connections = 800
key_buffer_size = 16M
myisam_sort_buffer_size = 128M
join_buffer_size = 2M
read_buffer_size = 2M
sort_buffer_size = 4M
table_cache = 6000
thread_cache_size = 768
wait_timeout = 15
connect_timeout = 10
tmp_table_size = 64M
max_heap_table_size = 64M
max_allowed_packet = 64M
net_buffer_length = 16384
max_connect_errors = 10
thread_concurrency = 16
concurrent_insert = 2
table_lock_wait_timeout = 30
read_rnd_buffer_size = 2M
bulk_insert_buffer_size = 8M
query_cache_limit = 6M
query_cache_size = 288M
query_cache_type = 1
query_prealloc_size = 262144
query_alloc_block_size = 65536
transaction_alloc_block_size = 8192
transaction_prealloc_size = 4096
default-storage-engine = MyISAM
max_write_lock_count = 16
[mysqld_safe]
nice = -10
open_files_limit = 8192
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M
Top des Webservers
top - 21:31:59 up 7 days, 6:36, 2 users, load average: 0.23, 0.22, 0.24
Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.4% us, 0.2% sy, 0.0% ni, 96.3% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 4036928k total, 3539520k used, 497408k free, 177056k buffers
Swap: 2040244k total, 0k used, 2040244k free, 2915856k cached
PID USER PR NI %CPU TIME+ %MEM VIRT RES SHR S COMMAND
31642 apache 15 0 5 0:00.65 0.4 219m 15m 9280 S httpd
31681 apache 15 0 5 0:00.52 0.3 219m 13m 7340 S httpd
31634 apache 16 0 5 0:00.80 0.3 219m 13m 7508 S httpd
31661 apache 16 0 4 0:00.59 0.3 219m 12m 6904 S httpd
31632 apache 15 0 2 0:00.53 0.3 219m 13m 7684 S httpd
31645 apache 15 0 2 0:00.68 0.3 219m 13m 7656 S httpd
31620 apache 16 0 1 0:00.81 0.5 224m 17m 7836 S httpd
31628 apache 16 0 1 0:00.79 0.6 225m 22m 11m S httpd
31664 apache 16 0 1 0:00.27 0.4 224m 17m 7356 S httpd
31688 apache 16 0 1 0:00.18 0.4 224m 15m 5916 S httpd
31689 apache 16 0 1 0:00.25 0.4 224m 15m 5928 S httpd
31627 apache 15 0 0 0:00.85 0.3 219m 13m 7844 S httpd
31650 apache 15 0 0 0:00.62 0.3 219m 13m 7488 S httpd
Top des Datenbankservers
top - 21:32:53 up 7 days, 6:33, 1 user, load average: 10.01, 11.34, 10.82
Tasks: 99 total, 2 running, 97 sleeping, 0 stopped, 0 zombie
Cpu(s): 40.2% us, 58.6% sy, 0.0% ni, 1.1% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 4036928k total, 3935656k used, 101272k free, 337128k buffers
Swap: 2040244k total, 208k used, 2040036k free, 252772k cached
PID USER PR NI %CPU TIME+ %MEM VIRT RES SHR S COMMAND
3623 mysql 5 -10 791 22:20.74 1.3 390m 51m 4448 S mysqld