- 論壇徽章:
- 0
|
諸位大俠,我對(duì)apache不太熟,遇到了一個(gè)問(wèn)題,這里向諸位大俠請(qǐng)教。
案例是一個(gè)高峰時(shí)四五百人在線的論壇。
硬件環(huán)境:CPU Intel(R) Xeon(TM) CPU 2.80GHz ,內(nèi)存2G
軟件環(huán)境,內(nèi)核 2.6.15-dcc-smp
之前使用的apache是系統(tǒng)自帶的,prefork,load average一般都在1以下,甚至很多時(shí)候在0.4以下,CPU占用率通常超不過(guò)20%,大多數(shù)時(shí)候都是10%以下。
編譯進(jìn)核內(nèi)的有:
- Compiled in modules:
- core.c
- mod_access.c
- mod_auth.c
- mod_log_config.c
- mod_logio.c
- mod_env.c
- mod_setenvif.c
- prefork.c
- http_core.c
- mod_mime.c
- mod_status.c
- mod_autoindex.c
- mod_negotiation.c
- mod_dir.c
- mod_alias.c
- mod_so.c
復(fù)制代碼
動(dòng)態(tài)加載的模塊有:
- auth_pam.load dav_fs.load layout.load php4.conf userdir.load
- auth_shadow.load dav.load ntlm.load php4.load
- cgi.load file_cache.load perl.conf rewrite.load
- dav_fs.conf include.load perl.load userdir.conf
復(fù)制代碼
prefork相關(guān)配置是:
- <IfModule prefork.c>
- StartServers 20
- MinSpareServers 20
- MaxSpareServers 100
- ServerLimit 1000
- #MaxClients 300
- MaxClients 400
- MaxRequestsPerChild 0
- </IfModule>
復(fù)制代碼
因?yàn)橐玫哪承┠K沒法加進(jìn)來(lái),所以我另外編譯了一個(gè)apache,在這里看到prefork和worker的介紹,就決定使用worker。
但是今天換用后,發(fā)現(xiàn)系統(tǒng)消耗比從前用prefork高了很多, load average:絕大多數(shù)時(shí)候都在1以上,剛才我甚至看到 load average:到了19,嚇我一跳。
而CPU資源的消耗也比用prefork時(shí)多了很多,大多數(shù)時(shí)候都是30%,最多到50%,內(nèi)存消耗倒是沒變化。
我知道CPU和內(nèi)存買回來(lái)就是要用的,但是現(xiàn)在論壇人數(shù)沒有增加,換用worker系統(tǒng)消耗就忽然多了這么多,我覺得很奇怪。
另外,我擔(dān)心如果人數(shù)再增加,或者上別的應(yīng)用,系統(tǒng)會(huì)吃不消。
目前用top看到的情況是:
- top - 21:38:04 up 72 days, 12:39, 1 user, load average: 1.31, 1.25, 1.51
- Tasks: 79 total, 3 running, 76 sleeping, 0 stopped, 0 zombie
- Cpu(s): 45.4% us, 4.5% sy, 0.0% ni, 48.9% id, 0.2% wa, 0.0% hi, 1.0% si
- Mem: 2073532k total, 2016800k used, 56732k free, 42984k buffers
- Swap: 3108856k total, 1516k used, 3107340k free, 1302328k cached
- PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- 7850 www-data 16 0 511m 86m 4396 S 37.6 4.3 10:19.14 httpd
- 6402 www-data 18 0 508m 80m 4524 S 23.0 4.0 63:47.19 httpd
- 7966 www-data 17 0 507m 80m 4240 S 12.3 4.0 9:56.60 httpd
- 8022 www-data 17 0 514m 86m 4400 S 11.3 4.3 9:07.98 httpd
- 6371 www-data 17 0 511m 82m 4568 S 7.7 4.1 63:32.37 httpd
復(fù)制代碼
httpd內(nèi)核情況:
- # ./httpd -l
- Compiled in modules:
- core.c
- worker.c
- http_core.c
- mod_so.c
復(fù)制代碼
模塊,好像多了一點(diǎn),但似乎也沒法減少:
- LoadModule authn_default_module modules/mod_authn_default.so
- LoadModule authz_host_module modules/mod_authz_host.so
- LoadModule authz_default_module modules/mod_authz_default.so
- LoadModule auth_basic_module modules/mod_auth_basic.so
- LoadModule auth_digest_module modules/mod_auth_digest.so
- LoadModule include_module modules/mod_include.so
- LoadModule filter_module modules/mod_filter.so
- LoadModule deflate_module modules/mod_deflate.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 headers_module modules/mod_headers.so
- LoadModule setenvif_module modules/mod_setenvif.so
- LoadModule mime_module modules/mod_mime.so
- LoadModule autoindex_module modules/mod_autoindex.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 alias_module modules/mod_alias.so
- LoadModule rewrite_module modules/mod_rewrite.so
- LoadModule php5_module modules/libphp5.so
- LoadModule limitipconn_module modules/mod_limitipconn.so
復(fù)制代碼
mpm的設(shè)置
- <IfModule mpm_worker_module>
- StartServers 3
- MaxClients 1500
- MinSpareThreads 25
- MaxSpareThreads 200
- ServerLimit 40
- ThreadLimit 200
- ThreadsPerChild 50
- MaxRequestsPerChild 0
- </IfModule>
復(fù)制代碼
請(qǐng)諸位大俠幫我分析一下問(wèn)題出在哪里。
多謝指點(diǎn)。
[ 本帖最后由 siyeclover 于 2006-11-30 21:56 編輯 ] |
|