一、硬件资源优化
worker_processes设为4),优先选择高主频CPU以提升复杂查询和并发处理能力。innodb_buffer_pool_size)需求(占内存50%-80%),避免因内存不足导致频繁使用Swap分区。net.core.somaxconn设为65535、net.ipv4.tcp_tw_reuse设为1)提高网络传输效率。二、操作系统层面优化
numa=off),避免内存访问延迟;调整文件系统挂载选项(如XFS启用wce=1写入缓存、rcd=0禁用读取缓存),提升文件读写性能。/etc/sysctl.conf文件,优化内存管理(vm.swappiness设为0-10,减少Swap使用;vm.dirty_background_ratio设为5-10,vm.dirty_ratio设为10-20,控制脏页刷新频率);优化TCP/IP栈(net.ipv4.tcp_fin_timeout设为30,缩短TIME_WAIT状态连接时长;net.ipv4.tcp_syncookies设为1,防止SYN Flood攻击)。三、Nginx配置优化
worker_processes设为CPU核心数(如worker_processes auto;),充分利用多核CPU;调整worker_connections设为1024或更高(如worker_connections 10240;),增加单个进程的最大并发连接数;启用sendfile(sendfile on;)和tcp_nopush(tcp_nopush on;),提升静态文件传输效率。location指令直接处理静态资源(如CSS、JS、图片),避免转发到PHP-FPM;启用gzip压缩(gzip on; gzip_comp_level 5;),减少传输数据量(压缩率约50%-70%)。fastcgi_pass指令将PHP请求转发给PHP-FPM(如fastcgi_pass 127.0.0.1:9000;),并设置fastcgi_read_timeout(如60秒),避免长时间等待导致资源占用。四、PHP-FPM配置优化
pm.max_children(如4GB内存约200个进程,每个进程约20M),避免过多进程导致内存耗尽;采用动态进程管理(pm = dynamic),设置pm.start_servers(初始进程数,如50)、pm.min_spare_servers(最小空闲进程数,如20)、pm.max_spare_servers(最大空闲进程数,如50),适应不同负载波动。opcache(opcache.enable=1),缓存编译后的PHP字节码(减少重复编译开销);调整opcache.memory_consumption(如128M)、opcache.max_accelerated_files(如10000),优化缓存效率;禁用不必要的PHP模块(如xdebug),减少内存占用。五、MySQL配置优化
innodb_buffer_pool_size设为服务器内存的50%-80%(如8GB内存设为4GB-6GB),缓存数据和索引(提升查询性能约5-10倍);调整key_buffer_size(如256M-512M),优化MyISAM索引性能(若使用InnoDB可适当减小)。max_connections(如1000-2000),根据并发请求量调整;启用thread_cache_size(如64-256),缓存线程(减少线程创建/销毁开销);优化innodb_log_file_size(如256M-512M)和innodb_log_buffer_size(如8M-64M),提升事务提交性能。WHERE、JOIN子句)创建索引(避免全表扫描);定期分析慢查询日志(slow_query_log=1、long_query_time=2),使用EXPLAIN优化低效SQL(如避免SELECT *、减少子查询);使用InnoDB存储引擎(支持事务、行级锁,适合高并发场景)。六、资源监控与维护
top(查看CPU/内存占用)、htop(可视化监控)、vmstat(查看系统整体性能)、iostat(查看磁盘I/O)等工具,实时监控服务器资源使用情况;通过Nginx、MySQL内置状态模块(如nginx -t、SHOW STATUS),获取模块运行指标。/var/log/nginx/error.log)、慢查询日志(/var/log/mysql/slow.log)、PHP错误日志(/var/log/php-fpm/error.log),定位性能瓶颈(如频繁的404错误、慢SQL查询)。yum update)、软件(Nginx、MySQL、PHP)版本,修复安全漏洞;备份数据库(使用mysqldump或Percona XtraBackup),避免数据丢失;清理无用日志(如Nginx access log)、临时文件(/tmp),释放磁盘空间。