首页主机资讯centos lnmp服务器性能调优策略

centos lnmp服务器性能调优策略

时间2025-11-28 13:50:04发布访客分类主机资讯浏览450
导读:CentOS LNMP 性能调优策略 一 系统层优化 资源与存储:优先使用 SSD/NVMe,数据库与日志分离;网卡至少 1Gbps,更高并发建议 10Gbps 或链路聚合。 文件句柄与进程数:提升系统及服务可打开文件数与进程数,避免“t...

CentOS LNMP 性能调优策略

一 系统层优化

  • 资源与存储:优先使用 SSD/NVMe,数据库与日志分离;网卡至少 1Gbps,更高并发建议 10Gbps 或链路聚合。
  • 文件句柄与进程数:提升系统及服务可打开文件数与进程数,避免“too many open files”。
    示例(/etc/security/limits.conf):
    * soft nofile 65535
    * hard nofile 65535
    * soft nproc  65535
    * hard nproc  65535
    
    在 systemd 服务单元中添加:
    [Service]
    LimitNOFILE=65535
    LimitNPROC=65535
    
  • 内核与虚拟内存:降低换页倾向、优化脏页刷新,提升 I/O 稳定性。
    示例(/etc/sysctl.conf):
    vm.swappiness=10
    vm.dirty_background_ratio=5
    vm.dirty_ratio=10
    net.core.somaxconn=65535
    net.ipv4.tcp_tw_reuse=1
    net.ipv4.tcp_fin_timeout=30
    
  • 文件系统与调度:数据库建议使用 XFS;I/O 调度器优先 noop/deadline(SSD/NVMe)。
  • 监控与告警:部署 Prometheus + Grafana,采集 Nginx、PHP-FPM、MySQL、系统资源 指标;定期分析 Nginx、MySQL、PHP 错误与慢日志。

二 Nginx 调优

  • 并发与连接:
    worker_processes auto;
        
    worker_rlimit_nofile 65535;
    
    
    events {
        
        worker_connections 8192;
        
        use epoll;
        
        multi_accept on;
        
        accept_mutex off;
       # 高并发下通常关闭更稳
    }
    
    
  • 传输与长连接:
    http {
        
        sendfile        on;
        
        tcp_nopush      on;
        
        tcp_nodelay     on;
        
        keepalive_timeout 30;
        
        keepalive_requests 1000;
    
    }
        
    
  • 缓冲与压缩:
    client_body_buffer_size 128k;
        
    client_max_body_size 50m;
        
    client_header_buffer_size 32k;
        
    large_client_header_buffers 4 32k;
        
    
    gzip on;
        
    gzip_vary on;
        
    gzip_min_length 1024;
        
    gzip_comp_level 6;
        
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
    
    
  • 静态资源缓存:
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        
        expires 1y;
        
        add_header Cache-Control "public, immutable";
        
        access_log off;
    
    }
        
    
  • 状态与观测:启用 stub_status/nginx_status 页面,配合监控观察 Active/Reading/Writing/Waiting 连接状态。

三 PHP-FPM 调优

  • 进程模型与数量:按内存与观测值设定 pm.max_children,避免 OOM;启用慢日志定位问题。
    示例(/etc/php-fpm.d/www.conf):
    [www]
    user = nginx
    group = nginx
    pm = static
    pm.max_children = 150
    pm.max_requests = 1000
    slowlog = /var/log/php-fpm/www-slow.log
    request_slowlog_timeout = 3s
    pm.status_path = /php_status
    
    内存估算:若单进程约 25MB,则 150 进程约 3.75GB(在 8GB 内存机器上可接受)。
  • OPcache 加速:
    opcache.enable=1
    opcache.memory_consumption=256
    opcache.max_accelerated_files=7963
    opcache.revalidate_freq=60
    
  • 连接与池化:Nginx 与 PHP-FPM 使用 Unix Socket 通常较 TCP 127.0.0.1:9000 更低开销;合理设置 pm.process_idle_timeoutrequest_terminate_timeout
  • 观测:通过 /php_status 与日志分析 queue、slow requests、process usage

四 MySQL MariaDB 调优

  • 缓冲与内存:将 innodb_buffer_pool_size 设为物理内存的 50%–70%(写多或内存紧张可下调),提升热点数据与索引命中率。
  • 连接与会话:根据压测与业务峰值设置 max_connections,避免连接风暴;结合连接池/长连接在应用侧复用连接。
  • 日志与持久化:权衡性能与安全,必要时将 innodb_flush_log_at_trx_commit=2(宕机可能丢失最近 1 秒事务)。
  • 日志文件大小:适度增大 innodb_log_file_sizeinnodb_log_files_in_group,减少 checkpoint 频率(变更前务必备份并按步骤操作)。
  • 查询与索引:开启 slow_query_log,用 pt-query-digest 分析;为高频 WHERE/JOIN/ORDER BY 字段建立合适索引,避免全表扫描,使用 EXPLAIN 验证执行计划。
  • 架构与缓存:引入 Redis/Memcached 做热点数据缓存;大表考虑 分区/分表;定期维护与监控。

五 压测与瓶颈定位流程

  • 基线压测:使用 wrkab 建立基线(示例:wrk -t4 -c100 -d60s http://127.0.0.1/index.php),记录 Requests/sec、P95/P99 延迟、错误率
  • 分层定位:
    • Nginx:观察 Active/Waiting带宽/连接数,先调 worker_connections、keepalive、gzip/缓存
    • PHP-FPM:查看 /php_status 队列与 slowlog,按 pm.max_childrenOPcache 逐步放大。
    • MySQL:分析 慢查询连接数,优化索引/SQL,再调整 innodb_buffer_pool_size 等。
  • 系统资源:用 top/vmstat/iostat/ss 观察 CPU、内存、I/O 等待、网络;若 I/O 等待高,优先检查存储与索引/查询。
  • 迭代验证:每次只变更少量参数,回放相同压测场景,确认 P95/P99 延迟与吞吐 的改善是否稳定。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos lnmp服务器性能调优策略
本文地址: https://pptw.com/jishu/758995.html
centos lnmp安全漏洞防范措施 如何解决centos中compton的启动问题

游客 回复需填写必要信息