lnmp优化

记录一下lnmp优化的配置

linux内核的优化

linux默认采用的通用配置,如果我们的服务器作为图片或者高并发web服务器显然不太合适,需要自己修改一下参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
需要修改/etc/sysctl.conf来更改内核参数
fs.file-max = 999999
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.ip_local_port_range = 1024 61000
net.ipv4.tcp_rmem = 4096 32768 262142
net.ipv4.tcp_wmem = 4096 32768 262142
net.core.netdev_max_backlog = 8096
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn.backlog=1024

ulimit -a //查看
其中 open files (-n) 1024 表示每个用户最大允许打开的文件数量是1024
ulimit -n 2048 //临时设置打开文件数
vim /etc/security/limits.conf
* fdipzone soft nofile 8192 // *代表任意用户
* fdipzone hard nofile 8192

优化nginx连接

1
2
3
4
worker_connections 51200; //查看限制,子进程允许打开的连接
worker_rlimit_nofile 51200; //一个工作进程允许打开的文件数

keepalive_timeout 60 //tcp连接保留的时间60s 大并发下修改为0s

系统优化

1
2
3
4
5
6
7
8
9
10
11
最大连接数
more /proc/sys/net/core/somaxconn //查看系统限制连接数
echo 50000 > /proc/sys/net/core/somaxconn //修改为50000

是否允许加快tcp连接的回收
cat /proc/sys/net/ipv4/tcp_tw_recycle //0 不进行快速回收
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
是否有洪水抵御
more /proc/sys/net/ipv4/tcp_syncookies //1有
echo 0 > /proc/sys/net/ipv4/tcp_syncookies

文件优化

1
ulimit -n 50000 //修改限制

php优化

1
2
3
4
5
6
pm = dynamic //fpm自动关闭进程,static不会自动关闭进程
pm.max_children = 10 //打开的进程数量
36个static大概是1G的内存

/usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm9002.conf //启动fpm以不同的端口
service iptables stop

memcached

1
2
3
4
5
pkill -9 memcached
最大2000个连接,最多512MB内存占用
/usr/localhost/memcached/bin/memcached -u nobody -c 2000 -p 11211 -m 512 -d
/usr/localhost/memcached/bin/memcached -u nobody -c 2000 -p 11212 -m 512 -d
/usr/localhost/memcached/bin/memcached -u nobody -c 2000 -p 11213 -m 512 -d
文章目录
  1. 1. linux内核的优化
  2. 2. 优化nginx连接
  3. 3. 系统优化
  4. 4. 文件优化
  5. 5. php优化
  6. 6. memcached
|