CentOS LAMP资源占用降低方法
/etc/sysctl.conf文件,优化以下关键参数:
vm.swappiness=10(降低交换分区使用率,避免内存不足时频繁读写磁盘);vm.dirty_background_ratio=10、vm.dirty_ratio=20(优化脏页写入策略,减少磁盘I/O压力);net.ipv4.tcp_max_syn_backlog=8192、net.ipv4.tcp_tw_reuse=1(提升TCP连接处理能力,减少TIME_WAIT状态连接占用)。sysctl -p使配置生效。systemctl disable命令关闭未使用的服务(如cups打印服务、postfix邮件服务、bluetooth蓝牙服务等),减少后台进程对CPU、内存的占用。ext4或XFS文件系统(XFS更适合大文件和高并发场景);挂载时添加noatime选项(避免每次访问文件都更新访问时间,减少磁盘写操作),例如:mount -o noatime /dev/sda1 /mnt。/etc/httpd/conf/httpd.conf文件,根据服务器内存调整MaxClients(或MaxRequestWorkers,Apache 2.4+)参数(如2GB内存可设置为600,公式:可用内存(MB)/每个Apache进程内存(MB),可通过top命令查看单个进程内存占用);KeepAlive(内存不足时)或调整KeepAliveTimeout=2(空闲连接超时时间,减少长连接占用)、MaxKeepAliveRequests=100(每个持久连接的最大请求数)。httpd.conf中未使用的模块(如mod_autoindex、mod_status等),减少内存占用;仅启用必需模块(如mod_rewrite、mod_ssl)。/etc/my.cnf(或/etc/mysql/mariadb.conf.d/50-server.cnf),增大innodb_buffer_pool_size(InnoDB引擎缓存池,建议设置为物理内存的50%-70%,如4GB内存设置为2GB-3GB),提高数据读取效率。query_cache_type=1、query_cache_size=64M,适用于读多写少场景);max_connections(最大连接数,如设置为200,避免连接数耗尽导致拒绝服务);back_log=1024(等待队列长度,应对突发连接请求)。WHERE、JOIN、ORDER BY子句中的字段)创建索引,避免全表扫描;EXPLAIN分析慢查询(SELECT * FROM table WHERE column = 'value'),优化SQL语句(如避免SELECT *、减少子查询、用JOIN代替子查询);OPTIMIZE TABLE(如每月一次)重建碎片化表,提升查询速度。opcache扩展(PHP 5.5+内置),编辑php.ini文件,开启opcache.enable=1、opcache.memory_consumption=128(缓存大小,根据内存调整)、opcache.interned_strings_buffer=8、opcache.max_accelerated_files=4000(缓存的脚本文件数量),减少脚本重复编译的开销。php.ini中未使用的扩展(如php_gd.dll、php_mbstring.dll等,仅在需要时启用),减少内存占用。Varnish(反向代理缓存服务器),配置缓存静态内容(如HTML、CSS、JS、图片),将静态资源缓存到内存中,减少Apache的请求处理次数(如Varnish缓存命中率可达90%以上)。Memcached或Redis作为缓存服务器,缓存数据库查询结果(如商品信息、用户会话),避免频繁访问数据库(如Redis支持持久化,适合存储会话数据)。top(查看CPU、内存占用)、vmstat 1(查看系统整体性能,如进程、内存、IO)、iostat -x 1(查看磁盘IO详情,如读写速率、IOPS)、sar -n DEV 1(查看网络流量)等命令,定期监控资源使用情况,定位瓶颈(如CPU占用过高可能是PHP脚本问题,内存占用过高可能是Apache进程过多)。access.log(查看热门页面、请求频率)、MySQL的slow_query.log(查看慢查询),及时优化高频请求和慢查询。yum update命令更新系统及软件包(如Apache、MySQL、PHP),修复安全漏洞并提升性能(新版本通常包含性能优化和改进)。