一、硬件层面优化
二、操作系统层面优化
noatime,nodiratime选项(减少文件访问时间记录,提升性能)。/etc/sysctl.conf并执行sysctl -p生效:
net.core.somaxconn = 65535(增加TCP监听队列长度,避免连接被拒绝);net.ipv4.tcp_max_syn_backlog = 65535(增加SYN队列长度,应对高并发连接请求);net.ipv4.tcp_fin_timeout = 30(缩短TCP连接关闭后的等待时间,释放资源);vm.swappiness = 10(降低系统使用swap分区的倾向,避免磁盘IO拖慢性能);vm.dirty_background_ratio = 10、vm.dirty_ratio = 20(控制脏页写入磁盘的时机,平衡性能与数据安全性)。ulimit -n 65535临时提高当前会话的文件描述符限制,修改/etc/security/limits.conf永久生效(添加* soft nofile 65535、* hard nofile 65535)。三、Nginx优化
worker_processes auto;(自动匹配CPU核心数);在events块中调整worker_connections 1024;(每个worker进程的最大并发连接数,建议设置为1024-4096,根据内存调整)。location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; add_header Cache-Control "public"; }),减少服务器负载和客户端请求次数;proxy_cache_path指令配置缓存路径(如/var/cache/nginx),对动态内容(如PHP页面)进行缓存(如location / { proxy_cache my_cache; proxy_pass http://backend; }),提升动态内容响应速度。http块中启用gzip on;,设置gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;(压缩文本类内容),减少传输数据量(通常可压缩至原大小的30%-70%)。keepalive_timeout 65;(保持连接的超时时间)、keepalive_requests 100;(单个连接允许的最大请求数),提升客户端与服务器之间的连接复用率,减少TCP握手开销。四、MySQL优化
innodb_buffer_pool_size设置为服务器总内存的50%-80%(如16GB内存设置为8GB-12GB),用于缓存InnoDB表的数据和索引,减少磁盘IO(是MySQL性能提升的关键参数)。max_connections(最大并发连接数,建议设置为100-500,根据应用需求调整)、thread_cache_size(线程缓存大小,建议设置为10-50),避免频繁创建和销毁线程导致的性能损耗。slow_query_log = ON、long_query_time = 2),定期分析慢查询(使用mysqldumpslow或pt-query-digest工具),优化SQL语句(如添加索引、避免SELECT *、使用EXPLAIN分析查询执行计划);query_cache_type = OFF、query_cache_size = 0),因新版本MySQL中查询缓存的性能提升有限,且可能成为瓶颈。五、PHP优化
php.ini中添加zend_extension=opcache.so,并设置opcache.enable=1(启用OPcache)、opcache.memory_consumption=128(缓存内存大小,建议128-256MB)、opcache.max_accelerated_files=4000(缓存文件数量,建议4000-10000)、opcache.jit_buffer_size=128M(JIT编译缓冲区大小,提升代码执行效率),缓存编译后的PHP代码,减少重复编译的开销(可提升PHP执行速度30%-50%)。www.conf中设置pm = dynamic(动态调整进程数)、pm.max_children = 50(最大子进程数,建议根据内存计算:每个PHP进程约占用10-20MB内存,如1GB内存可设置为50-100)、pm.start_servers = 5(启动时的子进程数)、pm.min_spare_servers = 5(最小空闲子进程数)、pm.max_spare_servers = 35(最大空闲子进程数),避免进程频繁创建和销毁(提升PHP处理并发请求的能力)。ob_start('ob_gzhandler')),减少响应数据量。六、缓存机制应用
七、负载均衡与高可用性
upstream backend { server backend1.example.com; server backend2.example.com; }),提升系统的并发处理能力和容错性(如某台服务器故障时,流量自动切换到其他服务器)。八、监控与日志分析
access.log、error.log)、MySQL(slow_query.log)、PHP(error_log)的日志,找出高频错误(如404错误、慢查询)、异常请求(如大量无效请求),并进行针对性优化(如屏蔽恶意IP、优化慢查询)。