怎么优化Debian LNMP性能

2026-07-03技术问答123225

优化 Debian 下的 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 性能,一般从 系统层、Nginx、PHP-FPM、数据库、系统资源与监控 几个层面来优化。下面给你一套实用、可落地的优化方案(按重要性排序)。


一、系统层面优化(基础)

1. 升级系统 & 内核

apt update && apt upgrade -y

Debian 新版本 + 新内核通常性能更好,支持更好的 TCP / IO 调度。


2. 调整文件描述符限制

查看当前:

ulimit -n

修改(永久):

vi /etc/security/limits.conf

添加:

* soft nofile 65535
* hard nofile 65535

或修改 systemd 服务:

vi /etc/systemd/system.conf
DefaultLimitNOFILE=65535

3. 内核参数优化(网络 & IO)

vi /etc/sysctl.conf

常用优化:

net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

vm.swappiness = 10
vm.dirty_ratio = 10

应用:

sysctl -p

二、Nginx 性能优化(重点)

1. worker 进程优化

worker_processes auto;
worker_cpu_affinity auto;

worker_rlimit_nofile 65535;

events {
    worker_connections 65535;
    use epoll;
    multi_accept on;
}

2. 连接 & 缓冲区优化

keepalive_timeout 65;
keepalive_requests 10000;

client_max_body_size 50m;
client_body_buffer_size 128k;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;

sendfile on;
tcp_nopush on;
tcp_nodelay on;

3. 开启 Gzip

gzip on;
gzip_comp_level 5;
gzip_min_length 1k;
gzip_types text/css application/javascript application/json text/xml text/plain;

4. 静态资源缓存

location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2)$ {
    expires 30d;
    access_log off;
}

三、PHP-FPM 优化(关键)

1. 进程模式推荐

一般推荐使用 dynamicondemand(低内存)

编辑:

vi /etc/php/8.x/fpm/pool.d/www.conf

推荐配置(以 2C4G 为例):

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 1000

如果是高并发网站:

pm = static
pm.max_children = 100

2. 调整 PHP 执行参数

vi /etc/php/8.x/fpm/php.ini
memory_limit = 256M
upload_max_filesize = 50M
post_max_size = 50M
max_execution_time = 120
opcache.enable=1

四、OPcache(强烈推荐)

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.jit_buffer_size=128M

重启:

systemctl restart php8.x-fpm

五、MySQL / MariaDB 优化

1. 基础配置文件

/etc/mysql/my.cnf/etc/mysql/mariadb.conf.d/50-server.cnf

4G 内存示例:

[mysqld]
innodb_buffer_pool_size = 2G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT

max_connections = 300
query_cache_type = 0

2. 禁用不必要的功能

  • 关闭 query cache(MySQL 8+ 已移除)
  • 禁用 DNS 反解析:
skip-name-resolve

六、缓存策略(性能飞跃)

1. Redis(首选)

apt install redis-server

PHP 使用:

  • WordPress:Redis Object Cache
  • Laravel:Redis Cache

2. Nginx FastCGI Cache(极高性能)

fastcgi_cache_path /tmp/nginx_cache levels=1:2 keys_zone=phpcache:100m inactive=60m max_size=1g;

七、系统资源监控(必须)

1. 实时查看

htop
vmstat 1
iostat -x 1

2. 查看 Nginx / PHP 状态

nginx -t
systemctl status php8.x-fpm

八、常见性能瓶颈排查

现象 原因 优化
CPU 高 PHP 慢 开启 OPcache
内存爆 FPM 进程多 调整 pm
IO 高 数据库 innodb_buffer_pool
并发低 文件描述符 调大

九、推荐 LNMP 优化优先级(实战)

OPcache + PHP-FPM 优化
Nginx worker & keepalive
MySQL innodb_buffer_pool
系统 ulimit + sysctl
Redis / FastCGI Cache


如果你愿意,可以告诉我:

  • 服务器配置(CPU / 内存 / 带宽)
  • 用途(WordPress / Laravel / API / 高并发)
  • MySQL 还是 MariaDB
  • 访问量级(日 IP)

我可以直接给你一套 定制参数配置,而不是通用方案。

《怎么优化Debian LNMP性能.doc》

下载本文的Word格式文档,以方便收藏与打印。