一、系统参数优化

 默认的最大打开文件数是1024.不满足生产环境的要求。按照如下配置:

1、修改 systemctl管理的 servie 资源限制

编辑/etc/systemd/system.conf

# 全局的打开文件数
DefaultLimitNOFILE=2097152
# 全局打开进程数
DefaultLimitNPROC=65535


2、调整系统内核参数

编辑文件/etc/sysctl.conf 

# 全局:端口最大的监听队列的长度,可为:32768
net.core.somaxconn=32768
# 内存分配模式:1为不限制
vm.overcommit_memory = 1
# 单进程打开文件句柄数
fs.nr_open = 2097152
# 系统打开文件句柄数
fs.file-max = 2097152

# 大i/o独立部署中间件选配,例如:redis、队列、数据库等;
# 请求连接保存在队列中的最大数目
net.ipv4.tcp_max_syn_backlog=16384
# 网络接口接收数据包比内核处理速率快时,允许送到队列的数据包的最大数目。
net.core.netdev_max_backlog=16384
# 每个tcp连接占用内存,共三个值:最小字节数 默认值 最大字节数
net.ipv4.tcp_mem = 786432 2097152 3145728
# 每个tcp连接的读缓冲(接收缓冲),缓存从对端接收的数据,后续会被应用程序读取
net.ipv4.tcp_rmem = 2048 32768 4194304
# 每个tcp连接的写缓冲(发送缓冲),缓存应用程序的数据,有序列号被应答确认的数据会从发送缓冲区删除掉
net.ipv4.tcp_wmem = 2048 8192 2097152

添加完成后,刷新内核参数,立即生效:执行命令

/sbin/sysctl -p

3、调整用户组的资源限制

修改limits.conf。需重启生效,vi /etc/security/limits.conf

# 用户会话的 打开文件句柄数
* soft nofile 1048576
* hard nofile 1048576
# 用户会话的 打开进程数限制
* soft nproc 65535
* hard nproc 65535
# * 代表所有用户
# nofile 在测试最大连接数时,可以设置,例如:2097152 = 2048 * 1024。
# 在实际环境中,因为还要处理数据业务逻辑,太大的值其实没有必要,例如:1048576 = 1024 * 1024

3.1 查看是否生效

#用户级别的系统配置
ulimit -a
#open file文件限制数
ulimit -n
#进程限制数
ulimit -u

4、其他不推荐使用的

# cpupower设置performance
cpupower frequency-set -g performance
# 查看一个cpu的工作模式
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

工作模式包含: 

1 ondemand:系统默认的超频模式,按需调节,内核提供的功能,不是很强大,但有效实现了动态频率调节,平时以低速方式运行,当系统负载提高时候自动提高频率。以这种模式运行不会因为降频造成性能降低,同时也能节约电能和降低温度。一般官方内核默认的方式都是 ondemand。

2 interactive:交互模式,直接上最高频率,然后看 CPU 负荷慢慢降低,比较耗电。Interactive 是以 CPU 排程数量而调整频率,从而实现省电。InteractiveX 是以 CPU 负载来调整 CPU 频率,不会过度把频率调低。所以比 Interactive 反应好些,但是省电的效果一般。

3 conservative:保守模式,类似于 ondemand,但调整相对较缓,想省电就用他吧。Google 官方内核,kang 内核默认模式。

4 smartass:聪明模式,是 I 和 C 模式的升级,该模式在比 interactive 模式不差的响应的前提下会做到了更加省电。

5 performance:性能模式!只有最高频率,从来不考虑消耗的电量,性能没得说,但是耗电量。

6 powersave 省电模式,通常以最低频率运行。

7 userspace:用户自定义模式,系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节 CPU 运行频率使用。也就是长期以来都在用的那个模式。可以通过手动编辑配置文件进行配置

8 Hotplug:类似于 ondemand, 但是 cpu 会在关屏下尝试关掉一个 cpu,并且带有 deep sleep,比较省电。

二、其他非软件优化

 注:window也有优化系统分页大小和文件句柄数,这里不做介绍了 

1、相应优化参考

自研MQTT单机百万TCP连接(服务端+客户端)调优_mqtt 百万并发-CSDN博客文章浏览阅读1k次。netty_mqtt 百万并发https://blog.csdn.net/callouszd/article/details/128965377

2、我们测试某台是网线太次:居然百兆网线

线上查找了半天:

ethtool 网卡名 | grep Speed

 Rocky(Centos)数据库等高并发或高io应用,linux应调优系统-LMLPHP

3、某次bom测试,ssd写性能比机械测试差距3倍

当前磁盘中速度最快的应该是SSD了。查看命令:

> yum install lsscsi
# 列出 SCSI 设备(或主机)及其属性
> lsscsi

[0:2:0:0]    disk    DELL     PERC H330 Adp    4.30  /dev/sda 
[14:0:0:0]   cd/dvd  HL-DT-ST DVD+-RW GU90N    A3C3  /dev/sr0

显然,我的电脑上没有SSD,只是普通的磁盘。如果有SSD,第5列会显示SSD字样。

三、系统监控、排查性能瓶颈

1、启动cockpit

可1台监控多台,运行

systemctl start cockpit
systemctl status cockpit

 centos7 可能不存在,则自己安装一下

yum install cockpit

Rocky(Centos)数据库等高并发或高io应用,linux应调优系统-LMLPHP

2、 开放9090端口

firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --reload

注删除端口开放名令

firewall-cmd --permanent --zone=public --remove-port=9090/tcp
firewall-cmd --reload

 查看防火墙列表

firewall-cmd --list-all

2、登陆控制台(无法用root登陆):

https://IP:9090/system

Rocky(Centos)数据库等高并发或高io应用,linux应调优系统-LMLPHP

2、查看cpu和内存占用:

点击下面的查看指标和历史记录

Rocky(Centos)数据库等高并发或高io应用,linux应调优系统-LMLPHP

注:点击右上角的管理认证,可申请更大的权限

Rocky(Centos)数据库等高并发或高io应用,linux应调优系统-LMLPHP

3、安装可查看历史的插件

点击上图的查看历史和指标,可查看当前机器的情况

会提示安装插件(非必须,对机器有一定的损耗),安装好后,提示注销会重新登陆

相应的指标会存储到redis内(提示安装redis,不推荐安装);

Rocky(Centos)数据库等高并发或高io应用,linux应调优系统-LMLPHP

4、提示安装redis,安装后的情况

(不建议点击提示安装,能实时查看即可)

Rocky(Centos)数据库等高并发或高io应用,linux应调优系统-LMLPHP

自动安装的redis位置;运行:where redis

Rocky(Centos)数据库等高并发或高io应用,linux应调优系统-LMLPHP

注:点击右上角可添加新的主机(只要装了:cockpit)

点击存储和网路,可查看到其他信息

04-10 06:57