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)

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[管理者与领导者-159] :社交策略和智慧-2,看破不说破,如何与虚伪的人和谐相处

目录 前言: 一、看破不说破 二、与虚伪的愉悦相处 三、如何利用社交技巧赞扬虚伪的人,而不失自己的原则 前言: 在实现生活中,总与遇到一种人,他们说一套,做一套、心理想一套,他们把自己利己…

面试-数据库基础以及MySql、ClickHost、Redis简介

面试-数据库基础以及MySql、ClickHost、Redis简介 0.数据完整性1.数据库并发控制1.1事物1.2 并发读写错误1.3 锁1.3.1 乐观锁与悲观锁1.3.2 共享锁和排他锁1.3.3 行锁与表锁1.3.4 意向锁 1.4 封锁协议与隔离级别1.5 MVCC1.5.1 概念1.5.2 当前读与快照读1.5.3 MVCC in InnoDB 2.…

数据采集仪:自动化监测系统的核心组件

在当代的工业自动化领域,数据采集仪成为了一个关键的技术工具,它不仅仅是简单地将电信号转化为数据信号,而是能够实时、有效地处理和显示各种信号,确保整个监测系统的稳定、高效运行。 点击输入图片描述(最多30字&…

redis-缓存穿透与雪崩

一,缓存穿透(查不到) 在默认情况下,用户请求数据时,会先在缓存(Redis)中查找,若没找到即缓存未命中,再在数据库中进行查找,数量少可能问题不大,可是一旦大量的请求数据&a…

自动化测试selenium(2)

目录 WebDriver介绍 WebDriver使用 使用WebDriver驱动操作浏览器(打开一个百度) WebDriver 相关API 定位元素 操作元素 上一篇主要介绍了自动化测试的概念以及selenium的基本原理, 这里我们来讲一下如何利用selenium来写测试用的脚本. WebDriver介绍 Selenium是一个用于…

GitHub repository - Branch - SSH clone URL - Clone in Desktop - Download ZIP

GitHub repository - Branch - SSH clone URL - Clone in Desktop - Download ZIP 1. Branch2. SSH clone URL3. Clone in Desktop4. Download ZIPReferences 1. Branch 显示当前分支的名称。从这里可以切换仓库内分支,查看其他分支的文件。 2. SSH clone U…

单细胞RNA测序(scRNA-seq)Cellranger流程入门和数据质控

单细胞RNA测序(scRNA-seq)Cellranger流程入门和数据质控 单细胞RNA测序(scRNA-seq)基础知识可查看以下文章: 单细胞RNA测序(scRNA-seq)工作流程入门 单细胞RNA测序(scRNA-seq)细胞分离与扩增 1. 单细胞RNA-seq样本数据说明 样本数据来源文章:Acquired cancer re…

Unity TextMeshProUGUI 获取文本尺寸·大小

一般使用ContentSizeFitter组件自动变更大小 API 渲染前 Vector2 GetPreferredValues(string text)Vector2 GetPreferredValues(string text, float width, float height)Vector2 GetPreferredValues(float width, float height) 渲染后 Vector2 GetRenderedValues()Vector…

自动化测试(selenium篇)

这次我们来介绍selenium 我们主要来讲解这几个要点 1.什么是自动化测试 2.什么是selenium 3.为什么来讲selenium 4.selenium的环境搭建 5.selenium的 API 1.什么是自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条…

快速掌握缓存技术:学习多个缓存供应商(ehcache,redis,memcached,jetcache,j2cache)

缓存技术 缓存模拟缓存Spring缓存技术第三方缓存技术Ehcache缓存供应Redis缓存memcached缓存(国内) jetcache缓存供应商jetcache的基本使用设置外部服务设置本地服务 jetcache方法缓存j2cache 缓存 什么是缓存 缓存是一种介于数据永久存储介质与数据应用…

【U8+】打开固定资产卡片提示:运行时错误‘91’,未设置对象变量或with block变量。

【问题描述】 用友U8软件,固定资产模中打开某张卡片后, 提示:运行时错误‘91’,未设置对象变量或with block变量。 Ps:但不是所有卡片打开的时候都会提示,有的正常。 【解决方法】 跟踪数据库后&#xff…

【高效开发工具系列】obsutil安装与使用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

SpringBoot工程快速构建

一、构建流程 1.创建Maven项目 2.导入SpringBoot起步依赖 3.定义Controller 4.编写引导类 5.启动测试 二、使用idea快速构建 1.创建SpringBoot模块 2.勾选依赖 3.定义Controller 4.启动测试

Angular 使用DomSanitizer防范跨站脚本攻击

跨站脚本Cross-site scripting 简称XSS,是代码注入的一种,是一种网站应用程序的安全漏洞攻击。它允许恶意用户将代码注入到网页上,其他用户在使用网页时就会收到影响,这类攻击通常包含了HTML和用户端脚本语言(JS&…

【vue】用vite创建vue项目

前置要求 要有Node.js 1. 用vite创建vue项目 在cmd中,进入一个文件夹 在文件资源管理器上面的文件目录中,输入cmd,回车在cmd中通过cd命令进入对应文件夹 创建项目 npm create vitelatest # 创建项目创建项目过程中的一些选项 Ok to pro…

MyBatis源码介绍

文章目录 MyBatis的核心流程介绍SqlSessionFactory的理解MyBatis中的Executor的源码理解Spring中是如何解决MySQL的SqlSession的线程安全问题MyBatis面向Mapper编程工作原理Mybatis动态sql执行原理Mybatis的一级、二级缓存实现原理Mybatis的插件运行原理以及如何编写一个插件my…

【力扣】142. 环形链表 II

142. 环形链表 II 题目描述 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环&am…

Filebeat+Kafka+ELK 的服务部署

一. kafka 架构深入 1.1 Kafka 工作流程及文件存储机制 Kafka 中消息是以 topic 进行分类的,生产者生产消息,消费者消费消息,都是面向 topic 的。 topic 是逻辑上的概念,而 partition 是物理上的概念,每个 partit…

javaScript设计模式之简单工厂模式

简单工厂模式(Simple Factory):又叫静态工厂方法,由一个工厂对象决定创建某一种产品对象类的实例。主要用来创建同一类对象。 场景一 假设我们需要计算圆形和矩形的面积 function Circle(radius) {this.radius radius;}Circle.prototype.getArea function() {re…

[Win11·Copilot] Win11 系统更新重启后任务栏 Copilot 图标突然消失 | 解决方案

文章目录 前言Copilot介绍产生异常的原因解决方案总结 前言 在 Windows 11 的最新系统更新之后,一些用户报告了任务栏中 Copilot 图标消失的问题。这篇技术博文将为您提供详细的解决方案,帮助您恢复 Copilot 图标,并确保您能够继续享受 Copi…