MySQL優化
編輯MySQL的配置文件:
nano /etc/my.cnf
輸入以下內容:
[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
default-character-set=utf8
#log
log_slow_queries=/var/log/mysqlSlow.log
long_query_time=5
#log-bin
log-bin=mysql-bin
#innodb
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 0
innodb_lock_wait_timeout = 50
請 注意,以上配置適用於512M~1024M內存,如內存更大的話請自行做調整。給項目增加內存會加快速度,但是使用過多的內存而導致啓用swap的話,會 極大的導致系統效率下降。其中 thread_concurrency 這項配置,單CPU的話請設置爲2,雙CPU的話請設置爲4。
Apache優化
httpd.conf的文件有許多內容,筆者就拿出需要做優化的:
Timeout 120
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 3
MinSpareServers 8
MaxSpareServers 13
MaxRequestsPerChild 50
Options -Indexes FollowSymLinks 關閉目錄瀏覽
將 KeepAliveTimeout 設定到較小的數字將有助於減少服務器上的無用等待鏈接,一定程度上能增加服務器負載。
另外,下面這條不算優化,但是是Apache安全相關:
ServerSignature Off
ServerTokens ProductOnly
將 ServerSignature 關閉,並增加 ServerTokens ProductOnly 可以使常人無法檢測到Apache的實際版本號,有助於Apache的安全。
以上所做的這些優化在某種程度上會增強服務器的負載性能。但請注意,最佳的配置是實踐出來的。