Rocky(Centos)数据库等高并发或高io应用linux系统调优,及硬件问题排查(含网络、磁盘、系统监控)

一、系统参数优化

 默认的最大打开文件数是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,比较省电。

linux优化配置参考

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

二、其他硬件问题排查问题

1、常用的 cpu、内存、磁盘剩余

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

#常见的cpu 运行 top 然后按键盘 1
top

#内存
free -h

 

#磁盘剩余
df -TH

2、网络问题排查

某次排查问题,居然是网线的问题。

2.1 排查机器的网卡与交换机的协商网速

ethtool 网卡名 | grep Speed

 

2.2 排查压测机器与目标机器的网络带宽

在centos 7/8 安装iperf3最新版本。_centos8 安装iperf-CSDN博客文章浏览阅读4.4k次,点赞3次,收藏13次。废话不多说,直接切入正题。iperf3最新版官网下载:https://iperf.fr/iperf-download.php#fedora1、先去这里选择自己操作系统版本,然后下载rpm包我这里以centos为例:2、复制下载链接wget下载,或者手动下载上传到服务器上也可以,随自己喜好wget https://iperf.fr/download/fedora/iperf3-3.1.3-1.fc24.x86_64.rpm3、在下载iperf3rpm包的位置下,._centos8 安装iperfhttps://blog.csdn.net/muxia_i/article/details/1088129871)rocky 是安装 iperf3

yum install iperf3

 2)开放被测那台的防火墙的5201端口

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

3)启动服务端

iperf3 -s

 

4)启动客户端,测目标网速

linux 测试

iperf3 -c 目标ip
如下图:interval:表示iperf测试的时间间隔
Transfer:表示iperf测试期间传输的数据量, 1GBytes转G需处于8
Bandwidth:表示iperf测试期间的带宽,即数据传输速率,单位也需要除以8

window 测试

下载软件:https://iperf.fr/iperf-download.php#windows 

压缩包解压,再压缩包运行

.\iperf3.exe -c 172.26.203.111 5201

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字样。

3.1 测试磁盘读写速度

hdparm -t /dev/sda1

3.2 查看机械转速

hdparm -I /dev/sda | grep Rotation

安装 磁盘测试工具

yum install hdparm

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

简单压测用

apipost 简单的性能压测总结_apipost压测-CSDN博客文章浏览阅读679次,点赞9次,收藏7次。2)数据库配置文件写了占了2G+内存(my.cnf文件),redis+syslog+nginx 最好2G内存-实际大概1G ,消息队列1G内存,Java系统推荐2~4G,所以8G内跑差不多1千;1)jdk默认256M给100用,推荐给1000+人同时用JVM 堆栈建议2G~4G(目前定了机型4核8G内存 2T磁盘做radio0存储);3)16G内存能够很好的跑1千+,最好适当调整mysql、nginx(跟cpu主要相关)、程序的jvm堆栈大小。(在接口旁边就有个一键压测),专业的还是得jmater;_apipost压测https://blog.csdn.net/qq_26408545/article/details/136019421?spm=1001.2014.3001.5502

1、启动cockpit

可1台监控多台,运行

systemctl start cockpit
systemctl status cockpit

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

yum install cockpit

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、登陆控制台:

centos可root登陆,rocky无法root登陆

https://IP:9090/system

2、查看cpu和内存占用:

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

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

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

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/812470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《基于分解算法与元学习结合的综合能源系统负荷预测》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Vue.js组件精讲 第2章 基础:Vue.js组件的三个API:prop、event、slot

如果您已经对 Vue.js 组件的基础用法了如指掌,可以跳过本小节,不过当做复习稍读一下也无妨。 组件的构成 一个再复杂的组件,都是由三部分组成的:prop、event、slot,它们构成了 Vue.js 组件的 API。如果你开发的是一个…

科研学习|可视化——Origin绘制相关性系数矩阵

一、Origin软件版本 Origin2021版本 二、插件下载地址 CorrelationPlot.opx资源-CSDN文库 三、插件安装步骤 从上述链接下载插件将插件解压缩(最好是解压缩到orgin的安装目录)用origin打开插件(或者打开origin,将插件拖拽到origin…

Qt - 获取系统当前时间

1、使用QDateTime类来获取系统当前时间 在 Qt 中&#xff0c;可以使用QDateTime类来获取系统当前时间。以下是一个示例代码&#xff1a; #include <QDateTime>// 获取系统当前时间 QDateTime currentDateTime QDateTime::currentDateTime();// 输出当前时间 QString c…

STL--vector

目录 【本节目标】 1.vector的介绍及使用 1.1 vector的介绍 1.2 vector的使用及底层模拟实现 vector类中成员变量 1.2.1 vector的定义 1.2.2 vector iterator 的使用 1.2.3 vector 空间增长问题 1.2.3 vector 增删查改 1.2.4 vector 迭代器失效问题 1.2.5 使用memcp…

口语 4.13

you got it going on :整个人感觉不错 artsy&#xff1a;艺术性的&#xff0c;也可以阴阳怪气 into sth&#xff1a;对...感兴趣 trippy&#xff1a;魔幻的 full-time &#xff1a;全职的 livestream&#xff1a;直播 streamer&#xff1a;主播 stream&#xff1a;直播v…

git工具上传文件超过100MB解决方法

Github 上传超过100M的大文件 - 简书 (jianshu.com) 看到一个不错的贴子。 29660DESKTOP-CAB6SQB MINGW64 /d/predict-system $ git init Initialized empty Git repository in D:/predict-system/.git/29660DESKTOP-CAB6SQB MINGW64 /d/predict-system (master) $ git lfs tr…

基于java+springboot+vue实现的居家养老健康管理系统(文末源码+Lw)23-313

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装智慧社区居家养老健康管理系统软件来发挥其高效地信息处理…

SpringBoot 面试题(三)

1. 如何使用SpringBoot实现文件的上传和下载&#xff1f; 在Spring Boot中实现文件的上传和下载&#xff0c;可以通过Spring MVC提供的MultipartFile接口来处理文件上传&#xff0c;以及使用HttpServletResponse来输出文件流实现文件下载。下面是一个简单的示例来说明如何实现…

设计模式-享元模式(Flyweight)

1. 概念 享元模式是一种结构型设计模式&#xff0c;它通过共享技术有效地支持大量细粒度对象的复用。 2. 原理结构图 图1 图2 2. 1 角色 抽象享元&#xff08;Flyweight&#xff09;&#xff1a;这是所有具体享元类的基类&#xff0c;它定义了享元对象的内部状态和外部状…

C语言中生成随机数的几种方式

一.rand 1.rand介绍 C语言提供了一个函数叫rand&#xff0c;这函数是可以生成随机数的&#xff0c;函数原型如下所示&#xff1a; int rand (void); rand函数会返回一个伪随机数&#xff0c;这个随机数的范围是在0~RAND_MAX之间&#xff0c;这个RAND_MAX的大小是依赖编译器…

java快速幂算法

快速幂算法 参考视频(参考五角七边up大佬&#xff09; 幂运算的介绍 幂运算是指将一个数自身乘以自身多次的运算&#xff0c;其表达式为 a n a^n an&#xff0c;其中 a a a 是底数&#xff0c; n n n 是指数。 快速幂解释 快速幂算法是一种用于快速计算幂运算的算法&…

[当人工智能遇上安全] 13.威胁情报实体识别 (3)利用keras构建CNN-BiLSTM-ATT-CRF实体识别模型

《当人工智能遇上安全》系列将详细介绍人工智能与安全相关的论文、实践&#xff0c;并分享各种案例&#xff0c;涉及恶意代码检测、恶意请求识别、入侵检测、对抗样本等等。只想更好地帮助初学者&#xff0c;更加成体系的分享新知识。该系列文章会更加聚焦&#xff0c;更加学术…

Unity中支持泰语--没有版权限制

在Unity中支持泰语主要涉及以下几个方面&#xff1a; 选择合适的字体&#xff1a;在Unity中&#xff0c;确保使用支持泰文字符的字体是至关重要的。例如&#xff0c;可以选择使用Noto Serif Thai字体&#xff0c;这是一个支持泰语的字体2。 处理Unity版本问题&#xff1a;某些…

CentOS 网卡ifcfg-eth0 ping不通外网(www.baidu.com)

1、如果确认好就直接激活网卡&#xff01; ifup eth0 2、慢慢找&#xff1a; cd /etc/sysconfig/network-scripts/ ls 找到你的网卡是啥&#xff0c;这里网卡是 ifcfg-eth0 执行1就好了&#xff01;

JetBrains PyCharm 2024.1 发布 - 面向专业开发者的 Python IDE

JetBrains PyCharm 2024.1 发布 - 面向专业开发者的 Python IDE 请访问原文链接&#xff1a;JetBrains PyCharm 2024.1 (macOS, Linux, Windows) - 面向专业开发者的 Python IDE&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org…

LINUX[网络编程]

sendto函数的应用&#xff1a;向to结构体指针指向的IP&#xff0c;发送UDP数据 细节请看我注释&#xff0c;注满细节 代码&#xff1a; #include <stdio.h> #include <sys/socket.h> //socket函数 #include <unistd.h> //close函数 #include <st…

「PHP系列」PHP表单及表单验证详解

文章目录 一、表单二、表单校验三、相关链接 一、表单 PHP 表单用于收集用户输入的数据&#xff0c;并将这些数据发送到服务器进行处理。在 PHP 中&#xff0c;通常使用 HTML 表单来收集用户输入&#xff0c;然后通过 PHP 脚本处理这些数据。 <!DOCTYPE html> <html…

acwing2060. 奶牛选美

题目&#xff1a; 代码&#xff1a; //acwing2060. 奶牛选美 #include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N55; const int dx[]{-1,0,1,0},dy[]{0,-1,0,1}; bool st[N][N]; int point[N][N]; char map[N][…

Go实现简单的协程池(通过channel实现)

go编程时&#xff0c;goroutine是非常有用的特性。然而&#xff0c;实践中最好不要无限制的使用goroutine&#xff0c;例如一次性开一万个goroutine去读写文件是很危险的。为了控制goroutine的并行量&#xff0c;有很多框架或库实现了协程池&#xff0c;例如ants&#xff08;很…