启用 MySQL缓存 【最重要】
启用html CSS JS 分离 开启缓存后节省带宽 【重要】
启用html生成
启用html 缓存
启用CSS JS 及图片缓存
启用CDN
ulimit命令
ulimit [-SHacdefilmnpqrstuvx] [limit]
-S 设置软件资源限制 -H 设置硬件资源限制 -a 显示当前所有的资源限制 -c size:设置core文件的最大值 -d size:设置数据段的最大值. -f size:设置创建文件的最大值. -l size:设置在内存中锁定进程的最大值 -m size:设置可以使用的常驻内存的最大值 -n size:设置内核可以同时打开的文件最大值 -p size:设置管道缓冲区的最大值 -s size:设置堆栈的最大值 -t size:设置CPU使用时间的最大上限 -v size:设置虚拟内存的最大值.单位
下面操作会严重影响系统性能,请先做备份再修改!
unlimited 是一个特殊值,用于表示不限制
/etc/security/limits.d/20-nproc.conf
* soft nproc 4096 root soft nproc unlimited
/etc/security/limits.conf配置文件 已经最大 如卡死 可以在PHP等中配置并发数来保证运行流畅
#@student - maxlogins 4 # End of file * soft nofile 131072 * hard nofile 131072 * soft nproc 131072 * hard nproc 131072 * soft core unlimited * hard core unlimited * soft memlock 50000000 * hard memlock 50000000 ## abase create ##
vim /etc/sysctl.conf,添加 --开机启动加载内核参数 :
# System default settings live in /usr/lib/sysctl.d/00-system.conf. # To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file # # For more information, see sysctl.conf(5) and sysctl.d(5). #防止杀死大内存应用 例MYSQL vm.overcommit_memory = 1 # 网络配置 net.core.somaxconn = 1024 net.ipv4.tcp_max_syn_backlog = 2048 net.core.netdev_max_backlog = 2048 # 安全性 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.tcp_syncookies = 1 # 性能优化 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1800 net.ipv4.ip_local_port_range = 4000 65000 # 防止DOS攻击 net.ipv4.tcp_max_orphans = 3276800 net.ipv4.tcp_max_syn_backlog = 262144 net.core.netdev_max_backlog = 30000
然后执行以下命令重载配置
sysctl -p
/proc/sys/kernel/sem
250 32000 100 128
/etc/systemd/system.conf
DefaultLimitCORE=infinity #DefaultLimitRSS= DefaultLimitNOFILE=1024000 #DefaultLimitAS= DefaultLimitNPROC=1024000
进程不是越大越好 不要乱写比如上万 高并发也会卡死

把PHP 连接方 改为 TCP 这个很重要
因为/tmp/php-cgi-72.sock 文件在高并发时可能会因为大量进程访问 /tmp/php-cgi-72.sock 文件时会出错(系统文件打开数量调到最大也会)导致卡顿。
修改 Nginx 进程最大可打开文件数(worker_processes和worker_connections)
(8核机器)
worker_processes 8; worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
(16核机器)
worker_processes 16; worker_cpu_affinity 0000000000000001 0000000000000010 0000000000000100 0000000000001000 0000000000010000 0000000000100000 0000000001000000 0000000010000000 0000000100000000 0000001000000000 0000010000000000 0000100000000000 0001000000000000 0010000000000000 0100000000000000 1000000000000000;
worker_rlimit_nofile 655350;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
use epoll;
worker_connections 655350;
}
浙公网安备 33010602011771号