一、CPU资源分配策略
worker_processes参数设置为服务器CPU核心数(如worker_processes auto;),使Nginx充分利用多核处理能力,提升并发请求处理效率。events模块的worker_connections参数增加每个worker进程的最大连接数(如worker_connections 1024;),应对高并发场景下的连接需求。pm.max_children(最大子进程数)、pm.start_servers(启动时的子进程数)、pm.min_spare_servers(最小空闲子进程数)、pm.max_spare_servers(最大空闲子进程数)等参数,平衡PHP脚本的执行效率和内存占用(如pm.max_children需根据服务器内存和PHP脚本内存限制计算得出)。innodb_thread_concurrency(InnoDB线程并发数,建议设为CPU核心数的2倍)、max_connections(最大连接数,根据应用并发需求调整)等参数,避免线程过多导致的CPU争抢。二、内存资源分配策略
worker_connections时,结合worker_rlimit_nofile(每个worker进程能打开的最大文件描述符数)避免内存溢出;启用gzip压缩(gzip on;)减少传输数据量,间接降低内存占用。innodb_buffer_pool_size(InnoDB缓冲池大小,建议占物理内存的50%-70%),用于缓存数据和索引,减少磁盘I/O;同时优化key_buffer_size(MyISAM键缓冲区大小,若使用InnoDB可适当减小)。php.ini中设置memory_limit(如memory_limit = 128M),限制单个PHP脚本的内存使用,避免内存泄漏;启用opcache(opcache.enable=1)缓存编译后的PHP脚本,减少重复编译的内存消耗。vm.swappiness参数(建议设为10-30),控制系统使用Swap分区的倾向(值越低,越倾向于使用物理内存);必要时增加Swap分区大小(如fallocate -l 4G /swapfile),防止内存不足导致系统崩溃。三、磁盘I/O资源分配策略
deadline(保证请求及时处理,避免饥饿)或bfq(公平分配带宽,适合交互场景);SSD/NVMe设备推荐noop(无额外调度,由设备自身管理)或none(适用于高级存储设备),提升磁盘I/O性能。xfs(适合大文件和高并发)或ext4(通用性强)文件系统;挂载时添加noatime(不更新文件访问时间戳)、nodiratime(不更新目录访问时间戳)、async(异步写入,提升写入效率)等参数,减少不必要的磁盘操作。innodb_io_capacity(InnoDB I/O容量,根据磁盘性能设置,如SSD设为2000)、innodb_flush_neighbors(是否刷新相邻数据页,HDD设为1,SSD设为0)等参数,提升数据库写入性能。四、网络资源分配策略
gzip on; gzip_types text/plain text/css application/json application/javascript;,减少HTML、CSS、JS等文本数据的传输量,降低网络带宽占用。location指令设置静态资源(如图片、CSS、JS)的缓存时间(如expires 30d; add_header Cache-Control "public, no-transform";),减少客户端对服务器的重复请求,提升页面加载速度。keepalive_timeout(保持连接的时间,如keepalive_timeout 65;)和keepalive_requests(一个连接上允许的最大请求数,如keepalive_requests 100;),减少TCP握手和挥手次数,提升网络利用率。五、综合监控与动态调整策略
top(查看进程CPU/内存占用)、htop(可视化监控)、vmstat(查看系统整体资源使用)、iostat(查看磁盘I/O)、netstat(查看网络连接)等工具,实时监控服务器的CPU、内存、磁盘、网络资源使用情况,及时发现瓶颈。access.log(访问日志)和error.log(错误日志)、MySQL的slow_query.log(慢查询日志),找出高负载的请求、慢查询等问题,针对性优化配置。worker_processes、扩大innodb_buffer_pool_size),确保资源分配与业务需求匹配。