PhpWind: 服務(wù)器優(yōu)化:修訂間差異
(新頁面: '''介紹一下如何優(yōu)化 sysctrl, Apache 以及 MySQL ''' 請(qǐng)注意,所有配置均為取決于個(gè)人,請(qǐng)根據(jù)自己的實(shí)際情況做調(diào)整。 1. 配置Sysctl 編輯此文件...) ? |
無編輯摘要 ? |
||
(未顯示同一用戶的4個(gè)中間版本) | |||
第1行: | 第1行: | ||
'''介紹一下如何優(yōu)化 sysctrl, Apache 以及 MySQL ''' | <span style="float:right; padding:6px; text-align:center; border:1px solid #000;"><strong>導(dǎo)航:</strong> [[PhpWind:經(jīng)驗(yàn)技巧|上一級(jí)]] | [[PhpWind]] | {{Template:PhpWind導(dǎo)航}}</span> | ||
<div style="clear:both;"></div> | |||
'''介紹一下如何優(yōu)化 sysctrl, [[Apache]] 以及 [[MySQL]] ''' | |||
請(qǐng)注意,所有配置均為取決于個(gè)人,請(qǐng)根據(jù)自己的實(shí)際情況做調(diào)整。 | 請(qǐng)注意,所有配置均為取決于個(gè)人,請(qǐng)根據(jù)自己的實(shí)際情況做調(diào)整。 | ||
第9行: | 第11行: | ||
如果該文件為空,則輸入以下內(nèi)容,否則請(qǐng)根據(jù)情況自己做調(diào)整: | 如果該文件為空,則輸入以下內(nèi)容,否則請(qǐng)根據(jù)情況自己做調(diào)整: | ||
<pre style="border:1px solid #999999; background:#eeeeee; padding:5px 15px 5px;"> | |||
# Controls source route verification | # Controls source route verification | ||
# Default should work for all interfaces | # Default should work for all interfaces | ||
第107行: | 第109行: | ||
net.ipv4.tcp_mem = 8388608 8388608 8388608 | net.ipv4.tcp_mem = 8388608 8388608 8388608 | ||
net.core.optmem_max = 40960 | net.core.optmem_max = 40960 | ||
</pre | </pre> | ||
如果希望屏蔽別人 ping 你的主機(jī),則加入以下代碼: | 如果希望屏蔽別人 [[ping]] 你的主機(jī),則加入以下代碼: | ||
<pre style="border:1px solid #999999; background:#eeeeee; padding:5px 15px 5px;"> | |||
# Disable ping requests | # Disable ping requests | ||
net.ipv4.icmp_echo_ignore_all = 1 | net.ipv4.icmp_echo_ignore_all = 1 | ||
</pre | </pre> | ||
編輯完成后,請(qǐng)執(zhí)行以下命令使變動(dòng)立即生效: | 編輯完成后,請(qǐng)執(zhí)行以下命令使變動(dòng)立即生效: | ||
<pre style="border:1px solid #999999; background:#eeeeee; padding:5px 15px 5px;"> | |||
/sbin/sysctl -p | /sbin/sysctl -p | ||
/sbin/sysctl -w net.ipv4.route.flush=1 | /sbin/sysctl -w net.ipv4.route.flush=1 | ||
</pre | </pre> | ||
2. MySQL優(yōu)化 | 2. MySQL優(yōu)化 | ||
第126行: | 第128行: | ||
輸入以下內(nèi)容: | 輸入以下內(nèi)容: | ||
<pre style="border:1px solid #999999; background:#eeeeee; padding:5px 15px 5px;"> | |||
[mysqld] | [mysqld] | ||
connect_timeout=15 | connect_timeout=15 | ||
第147行: | 第149行: | ||
query_cache_type=1 | query_cache_type=1 | ||
skip-innodb | skip-innodb | ||
</pre | </pre> | ||
<p>請(qǐng)注意,以上配置適用于512M~1024M內(nèi)存,如內(nèi)存更大的話請(qǐng)自行做調(diào)整。給項(xiàng)目增加內(nèi)存會(huì)加快速度, | <p>請(qǐng)注意,以上配置適用于512M~1024M內(nèi)存,如內(nèi)存更大的話請(qǐng)自行做調(diào)整。給項(xiàng)目增加內(nèi)存會(huì)加快速度, | ||
但是使用過多的內(nèi)存而導(dǎo)致啟用swap的話,會(huì)極大的導(dǎo)致系統(tǒng)效率下降。其中 thread_concurrency | 但是使用過多的內(nèi)存而導(dǎo)致啟用swap的話,會(huì)極大的導(dǎo)致系統(tǒng)效率下降。其中 thread_concurrency | ||
這項(xiàng)配置,單[[CPU]]的話請(qǐng)?jiān)O(shè)置為2,雙CPU的話請(qǐng)?jiān)O(shè)置為4。</p> | |||
3. Apache優(yōu)化 | 3. Apache優(yōu)化 | ||
第163行: | 第165行: | ||
httpd.conf的文件有許多內(nèi)容,筆者就拿出需要做優(yōu)化的: | httpd.conf的文件有許多內(nèi)容,筆者就拿出需要做優(yōu)化的: | ||
<pre style="border:1px solid #999999; background:#eeeeee; padding:5px 15px 5px;"> | |||
KeepAlive On | KeepAlive On | ||
MaxKeepAliveRequests 1000 | MaxKeepAliveRequests 1000 | ||
第170行: | 第172行: | ||
MaxSpareServers 13 | MaxSpareServers 13 | ||
MaxRequestsPerChild 50 | MaxRequestsPerChild 50 | ||
</pre | </pre> | ||
<p>將 KeepAliveTimeout 設(shè)定到較小的數(shù)字將有助于減少服務(wù)器上的無用等待鏈接, | <p>將 KeepAliveTimeout 設(shè)定到較小的數(shù)字將有助于減少服務(wù)器上的無用等待鏈接, | ||
一定程度上能增加服務(wù)器負(fù)載。 | 一定程度上能增加服務(wù)器負(fù)載。 | ||
第178行: | 第180行: | ||
<p>將 ServerSignature 關(guān)閉,并增加 ServerTokens ProductOnly | <p>將 ServerSignature 關(guān)閉,并增加 ServerTokens ProductOnly | ||
可以使常人無法檢測(cè)到Apache的實(shí)際版本號(hào),有助于Apache的安全。</p> | 可以使常人無法檢測(cè)到Apache的實(shí)際版本號(hào),有助于Apache的安全。</p> | ||
<p> | <p>以上所做的這些優(yōu)化在某種程度上會(huì)增強(qiáng)[[服務(wù)器]]的負(fù)載性能。但請(qǐng)注意, | ||
最佳的配置是實(shí)踐出來的。</p> | 最佳的配置是實(shí)踐出來的。</p> | ||
[[category:PhpWind經(jīng)驗(yàn)技巧]] |
2009年3月25日 (三) 11:25的最新版本
導(dǎo)航: 上一級(jí) | PhpWind | 首頁 | Discuz | 動(dòng)網(wǎng)論壇 | vBulletin | phpBB | MolyX | Discuz!NT
介紹一下如何優(yōu)化 sysctrl, Apache 以及 MySQL
請(qǐng)注意,所有配置均為取決于個(gè)人,請(qǐng)根據(jù)自己的實(shí)際情況做調(diào)整。
1. 配置Sysctl
編輯此文件: nano -w /etc/sysctl.conf
如果該文件為空,則輸入以下內(nèi)容,否則請(qǐng)根據(jù)情況自己做調(diào)整:
# Controls source route verification # Default should work for all interfaces net.ipv4.conf.default.rp_filter = 1 # net.ipv4.conf.all.rp_filter = 1 # net.ipv4.conf.lo.rp_filter = 1 # net.ipv4.conf.eth0.rp_filter = 1 # Disables IP source routing # Default should work for all interfaces net.ipv4.conf.default.accept_source_route = 0 # net.ipv4.conf.all.accept_source_route = 0 # net.ipv4.conf.lo.accept_source_route = 0 # net.ipv4.conf.eth0.accept_source_route = 0 # Controls the System Request debugging functionality of the kernel kernel.sysrq = 0 # Controls whether core dumps will append the PID to the core filename. # Useful for debugging multi-threaded applications. kernel.core_uses_pid = 1 # Increase maximum amount of memory allocated to shm # Only uncomment if needed! # kernel.shmmax = 67108864 # Disable ICMP Redirect Acceptance # Default should work for all interfaces net.ipv4.conf.default.accept_redirects = 0 # net.ipv4.conf.all.accept_redirects = 0 # net.ipv4.conf.lo.accept_redirects = 0 # net.ipv4.conf.eth0.accept_redirects = 0 # Enable Log Spoofed Packets, Source Routed Packets, Redirect Packets # Default should work for all interfaces net.ipv4.conf.default.log_martians = 1 # net.ipv4.conf.all.log_martians = 1 # net.ipv4.conf.lo.log_martians = 1 # net.ipv4.conf.eth0.log_martians = 1 # Decrease the time default value for tcp_fin_timeout connection net.ipv4.tcp_fin_timeout = 25 # Decrease the time default value for tcp_keepalive_time connection net.ipv4.tcp_keepalive_time = 1200 # Turn on the tcp_window_scaling net.ipv4.tcp_window_scaling = 1 # Turn on the tcp_sack net.ipv4.tcp_sack = 1 # tcp_fack should be on because of sack net.ipv4.tcp_fack = 1 # Turn on the tcp_timestamps net.ipv4.tcp_timestamps = 1 # Enable TCP SYN Cookie Protection net.ipv4.tcp_syncookies = 1 # Enable ignoring broadcasts request net.ipv4.icmp_echo_ignore_broadcasts = 1 # Enable bad error message Protection net.ipv4.icmp_ignore_bogus_error_responses = 1 # Make more local ports available # net.ipv4.ip_local_port_range = 1024 65000 # Set TCP Re-Ordering value in kernel to ‘5′ net.ipv4.tcp_reordering = 5 # Lower syn retry rates net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 3 # Set Max SYN Backlog to ‘2048′ net.ipv4.tcp_max_syn_backlog = 2048 # Various Settings net.core.netdev_max_backlog = 1024 # Increase the maximum number of skb-heads to be cached net.core.hot_list_length = 256 # Increase the tcp-time-wait buckets pool size net.ipv4.tcp_max_tw_buckets = 360000 # This will increase the amount of memory available for socket input/output queues net.core.rmem_default = 65535 net.core.rmem_max = 8388608 net.ipv4.tcp_rmem = 4096 87380 8388608 net.core.wmem_default = 65535 net.core.wmem_max = 8388608 net.ipv4.tcp_wmem = 4096 65535 8388608 net.ipv4.tcp_mem = 8388608 8388608 8388608 net.core.optmem_max = 40960
如果希望屏蔽別人 ping 你的主機(jī),則加入以下代碼:
# Disable ping requests net.ipv4.icmp_echo_ignore_all = 1
編輯完成后,請(qǐng)執(zhí)行以下命令使變動(dòng)立即生效:
/sbin/sysctl -p /sbin/sysctl -w net.ipv4.route.flush=1
2. MySQL優(yōu)化
編輯MySQL的配置文件: nano /etc/my.cnf
輸入以下內(nèi)容:
[mysqld] connect_timeout=15 interactive_timeout=100 join_buffer_size=1M key_buffer=128M max_allowed_packet=16M max_connections=500 max_connect_errors=10 myisam_sort_buffer_size=64M read_buffer_size=1M read_rnd_buffer_size=768K sort_buffer_size=1M table_cache=1024 thread_cache_size=100 thread_concurrency=4 wait_timeout=300 query_cache_size=32M query_cache_limit=1M query_cache_type=1 skip-innodb
請(qǐng)注意,以上配置適用于512M~1024M內(nèi)存,如內(nèi)存更大的話請(qǐng)自行做調(diào)整。給項(xiàng)目增加內(nèi)存會(huì)加快速度, 但是使用過多的內(nèi)存而導(dǎo)致啟用swap的話,會(huì)極大的導(dǎo)致系統(tǒng)效率下降。其中 thread_concurrency 這項(xiàng)配置,單CPU的話請(qǐng)?jiān)O(shè)置為2,雙CPU的話請(qǐng)?jiān)O(shè)置為4。
3. Apache優(yōu)化
以下優(yōu)化適用于 Apache 1.3 系列,如果你用的是 2.0 系列的話,請(qǐng)自行做調(diào)整和判斷。
確認(rèn) Apache 的配置文件位置并開始編輯:
locate httpd.conf
nano -w /path/to/httpd.conf
httpd.conf的文件有許多內(nèi)容,筆者就拿出需要做優(yōu)化的:
KeepAlive On MaxKeepAliveRequests 1000 KeepAliveTimeout 3 MinSpareServers 8 MaxSpareServers 13 MaxRequestsPerChild 50
將 KeepAliveTimeout 設(shè)定到較小的數(shù)字將有助于減少服務(wù)器上的無用等待鏈接, 一定程度上能增加服務(wù)器負(fù)載。 另外,下面這條不算優(yōu)化,但是是Apache安全相關(guān): ServerSignature Off ServerTokens ProductOnly
將 ServerSignature 關(guān)閉,并增加 ServerTokens ProductOnly 可以使常人無法檢測(cè)到Apache的實(shí)際版本號(hào),有助于Apache的安全。
以上所做的這些優(yōu)化在某種程度上會(huì)增強(qiáng)服務(wù)器的負(fù)載性能。但請(qǐng)注意, 最佳的配置是實(shí)踐出來的。