Ubuntu LAMP资源占用情况分析
Ubuntu LAMP(Linux+Apache+MySQL+PHP)的资源占用并非固定,主要取决于配置参数(如Apache的并发设置、MySQL的内存分配)、业务负载(如并发用户数、数据库查询复杂度、PHP脚本效率)及硬件规格三大核心因素。轻度使用(如个人博客、小型企业网站,日均访问量<1000)下,资源占用较低;重度使用(如电商网站、高并发API服务,日均访问量>10万)则可能对CPU、内存、磁盘产生较大压力。
prefork模式(多进程处理请求),每个子进程约占用5-10MB内存,若MaxRequestWorkers(最大并发请求数)设置过高(如超过服务器内存承受能力),会导致内存耗尽、系统频繁使用交换分区(swap),进而降低性能;启用event模式(异步非阻塞处理)可显著降低内存占用(每个进程约3-5MB),提升高并发下的性能。innodb_buffer_pool_size(InnoDB引擎缓冲池,建议设为物理内存的50%-70%,如8GB内存设为4-6GB),用于缓存数据和索引,减少磁盘IO;若未合理配置,频繁的磁盘读取会导致CPU等待,影响响应速度。OPcache(PHP内置字节码缓存)可缓存编译后的脚本,减少重复编译开销(约降低30%-50%的CPU使用率)。apt autoremove清理无用依赖;禁用无关服务(如蓝牙、Snapd),释放内存与CPU资源;优化内核参数(如调整net.core.somaxconn提升并发连接能力、vm.swappiness降低交换分区使用率)。event模式(编辑/etc/apache2/mods-enabled/mpm_event.conf),调整MaxRequestWorkers(如8GB内存设为1000)、MaxConnectionsPerChild(如设为10000,防止内存泄漏);启用mod_deflate(Gzip压缩文本内容,减少传输体积)、禁用未使用的模块(如status、autoindex)。EXPLAIN分析查询执行计划(避免全表扫描);调整innodb_buffer_pool_size(如8GB内存设为5G)、query_cache_size(读多写少场景设为64M)。OPcache(在php.ini中设置opcache.enable=1、opcache.memory_consumption=128),减少脚本编译开销;优化代码(如用批量插入代替循环单条插入、避免在循环中执行复杂计算)。