Linux LAMP網絡優化技巧
調整內核參數是提升網絡性能的基礎,需修改/etc/sysctl.conf
文件并執行sysctl -p
使配置生效。關鍵參數包括:
net.ipv4.tcp_tw_reuse=1
(允許復用TIME-WAIT狀態的連接,減少連接建立開銷)、net.ipv4.tcp_max_syn_backlog=8192
(增大SYN隊列長度,應對高并發連接請求)、net.core.somaxconn=65535
(增大監聽隊列長度,避免連接被拒絕)、net.core.netdev_max_backlog=65535
(增大網絡設備接收隊列長度,提升數據包處理能力);net.ipv4.ip_local_port_range="1024 65535"
(擴大本地端口范圍,支持更多并發出站連接)、net.ipv4.tcp_fin_timeout=30
(縮短TIME-WAIT狀態的超時時間,快速釋放端口資源);net.ipv4.tcp_ecn=1
(啟用顯式擁塞通知,緩解網絡擁塞)。這些參數需根據服務器實際負載調整,避免過度優化導致系統不穩定。Apache作為LAMP的核心組件,其配置直接影響網絡響應速度:
KeepAlive On
,設置MaxKeepAliveRequests 100
(限制單個持久連接的最大請求數,避免單個連接占用過多資源)、KeepAliveTimeout 5
(縮短空閑連接的保持時間,釋放連接供其他請求使用),減少TCP連接建立/關閉的開銷;MaxRequestWorkers
(或MaxClients
,舊版本參數),建議值為“服務器內存(MB)÷ 每個Apache進程內存占用(約20-30MB)”,避免進程過多導致系統交換(swap);mod_deflate
模塊(LoadModule deflate_module modules/mod_deflate.so
),添加AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript
(壓縮HTML、CSS、JS等文本資源,減少傳輸數據量);使用mod_cache
和mod_disk_cache
緩存動態內容,降低數據庫和磁盤訪問頻率;HostnameLookups Off
,禁止Apache解析客戶端域名,減少不必要的DNS查詢延遲。數據庫的網絡性能直接影響應用響應速度:
my.cnf
文件,設置bind-address=0.0.0.0
(允許外網連接,需配合防火墻規則);確保防火墻開放3306端口(firewall-cmd --add-port=3306/tcp --permanent
&& firewall-cmd --reload
);innodb_buffer_pool_size
為系統內存的50%-80%(如8GB內存設置為4-6GB),緩存InnoDB表數據和索引,減少磁盤I/O;設置key_buffer_size=256M
(優化MyISAM索引緩存,若主要使用InnoDB可適當減?。?;query_cache_type=1
、query_cache_size=64M
,適用于讀多寫少的場景,但需注意高并發寫入時的性能損耗);調整max_connections
為合理值(如150-200),避免過多連接導致數據庫崩潰;使用EXPLAIN
分析慢查詢,添加索引優化查詢性能(如為WHERE、JOIN條件字段添加索引)。PHP作為應用層腳本,其執行效率直接影響網絡響應時間:
OPcache
(zend_extension=opcache.so
),設置opcache.enable=1
、opcache.memory_consumption=128
(緩存內存大?。?、opcache.max_accelerated_files=4000
(緩存文件數量),緩存PHP字節碼,減少腳本編譯次數;PHP-FPM
(FastCGI Process Manager)替代傳統的mod_php
,通過pm.max_children
(子進程數量)、pm.start_servers
(啟動時的子進程數)等參數優化進程池,提高PHP處理并發請求的能力;spl_autoload_register
)延遲加載類文件,避免加載未使用的代碼;優化數據庫查詢(如使用預處理語句、批量插入),減少PHP與MySQL之間的交互次數。/etc/sysconfig/network-scripts/ifcfg-ens33
,設置BOOTPROTO=static
、IPADDR
、NETMASK
、GATEWAY
),避免DHCP租約更新導致的IP變化;設置正確的DNS服務器(DNS1=8.8.8.8
、DNS2=8.8.4.4
),減少DNS解析延遲;firewalld
或iptables
僅放通必要端口(HTTP 80、HTTPS 443、SSH 22),關閉不必要的端口(如FTP 21、Telnet 23),防止非法訪問消耗網絡資源;iftop
(實時查看端口流量)、nload
(監控網絡帶寬使用)、iptraf-ng
(分析網絡連接)等工具,及時發現帶寬瓶頸或異常流量(如DDoS攻擊);top
(查看CPU/內存占用)、vmstat 1
(監控系統整體性能)、ss -tulnp
(查看TCP連接狀態)等命令,定位性能瓶頸(如CPU過高、內存不足、連接數過多);access.log
(查看熱門頁面、請求頻率)、error.log
(查看404、500錯誤),MySQL的slow_query.log
(查看慢查詢),根據日志信息調整配置(如優化熱門頁面的緩存策略、修復慢查詢)。