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

news2025/1/12 20:39:33

一、系统参数优化

 默认的最大打开文件数是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.coloradmin.cn/o/1590700.html

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

相关文章

【Vue3 + ElementUI】表单校验无效(写法:this.$refs[‘formName‘].validate((valid) =>{} ))

一. 表单校验 1.1 template模块 el-form 中 若校验&#xff0c;ref 和 rules 必须要有 <template><div style"padding:20px"><el-form ref"formName" :model"form" :rules"formRules" label-width"120px"…

Docker 学习笔记(七):介绍 Dockerfile 相关知识,使用 Dockerfile 构建自己的 centos 镜像

一、前言 记录时间 [2024-4-12] 系列文章简摘&#xff1a; Docker学习笔记&#xff08;二&#xff09;&#xff1a;在Linux中部署Docker&#xff08;Centos7下安装docker、环境配置&#xff0c;以及镜像简单使用&#xff09; Docker 学习笔记&#xff08;三&#xff09;&#x…

LDF、DBC、BIN、HEX、S19、BLF、ARXML、slx等

文章目录 如题 如题 LDF是LIN报文格式文件&#xff0c;把这个直接拖到软件里面&#xff0c;可以发报文和接收报文 DBC是CAN报文格式文件&#xff0c;把这个直接拖到软件里面&#xff0c;可以发报文和接收报文 BIN文件烧录在BOOT里面&#xff08;stm32&#xff09;&#xff0c…

适用于 Windows 的 10 个免费数据恢复工具集合

有时&#xff0c;我们都会在个人计算机上意外删除一些重要文件或数据。我们无需再担心此类问题&#xff0c;因为我们可以借助互联网上提供的免费数据恢复工具来恢复宝贵的数据和图像。 互联网上有许多免费的数据恢复工具&#xff0c;从一长串工具中&#xff0c;我们列出了最好…

蓝桥杯-STL-string

目录 字符串定义 字符串初始化 字符串输入输出 字符串输出 字符串输入 字符串访问 字符串拷贝 字符串拼接 直接相加 append(const char*str,int n) 字符串比较 ​编辑字符串长度length()/size() 字符串查找find(string str) 查找子串substr(int a,int b) 字符串的…

webpack-loader的使用

引入css后执行打包命令 "build": "npx webpack --config wk.config.js"发现报错&#xff1a; webpack默认只能处理js其他的像css,图片都需要借助loader来处理 css-loader loader可以用于对模块的源代码进行转换&#xff0c;可以把css看成一个模块&…

Transformer模型-decoder解码器,target mask目标掩码的简明介绍

今天介绍transformer模型的decoder解码器&#xff0c;target mask目标掩码 背景 解码器层是对前面文章中提到的子层的包装器。它接受位置嵌入的目标序列&#xff0c;并将它们通过带掩码的多头注意力机制传递。使用掩码是为了防止解码器查看序列中的下一个标记。它迫使模型仅使用…

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

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

广州图创 图书馆集群管理系统 updOpuserPw SQL注入漏洞复现

0x01 产品简介 广州图创计算机软件开发有限公司是集产品研发、应用集成、客户服务为一体的高新技术企业,主要目标是为图书馆行业用户提供高质量的应用软件系统设计、集成和维护服务。 0x02 漏洞概述 由于广州图创 图书馆集群管理系统 updOpuserPw 接口处未对用户输入的SQL语…

minio-docker单节点部署SDK测试文件上传下载

目录 一&#xff0c;docker部署minio单节点单磁盘 二&#xff0c;SDK测试上传下载 一&#xff0c;docker部署minio单节点单磁盘 1.拉取镜像 # 下载镜像 docker pull minio/minio 2.查看镜像 docker images 3.启动minio(新版本) 创建本机上的挂载目录&#xff0c;这个可以…

鸿蒙OS开发学习:【第三方库调用】

介绍 本篇Codelab主要向开发者展示了在Stage模型中&#xff0c;如何调用已经上架到[三方库中心]的社区库和项目内创建的本地库。效果图如下&#xff1a; 相关概念 [Navigation]&#xff1a;一般作为Page页面的根容器&#xff0c;通过属性设置来展示页面的标题、工具栏、菜单。…

【AIGC】本地部署通义千问 1.5 (PyTorch)

今天想分享一下 Qwen 1.5 官方用例的二次封装&#xff08; huggingface 说明页也有提供源码&#xff09;&#xff0c;其实没有太多的技术含量。主要是想记录一下如何从零开始在不使用第三方工具的前提下&#xff0c;以纯代码的方式本地部署一套大模型&#xff0c;相信这对于技术…

50. QT/QML中创建多线程的方式汇总

1. 说明 在QT / QML中创建线程主要有三种方式。第一种:在定义类时继承 QThread 这个类,然后重写父类的虚函数 run(),将子线程需要执行的业务代码放到 run() 函数当中即可。**注意:**这种方式官方已经摒弃了。第二种:使用moveToThread()函数将需要在子线程中执行的函数类移…

软件设计师-基础知识科目-标准化与软件知识产权基本知识11

十一、标准化与软件知识产权基本知识&#xff1a; 知识产权&#xff1a; 主要包括&#xff1a;著作权及邻接权、专利权、工业品外观设计权、商标权、地理标志权、继承电路布图设计权。邻接权是指与著作权相邻近的权利&#xff0c;是指作品传播者&#xff0c;对其传播作品过程…

文献速递:深度学习肝脏肿瘤诊断---基于多相增强 CT 和临床数据的恶性肝肿瘤鉴别诊断深度学习

Title 题目 Deep learning for diferential diagnosisof malignant hepatic tumors based on multi-phase contrast-enhanced CT and clinical data 基于多相增强 CT 和临床数据的恶性肝肿瘤鉴别诊断深度学习 Abstract 摘要 Liver cancer remains the leading cause of can…

中介者模式:简化对象间通信的协调者

在面向对象的软件开发中&#xff0c;中介者模式是一种重要的行为型设计模式&#xff0c;用于降低多个对象间通信的复杂性。通过提供一个中心化的对象来处理不同组件之间的交互&#xff0c;中介者模式使得组件间不必显式引用彼此&#xff0c;从而使其松散耦合、更易于维护。本文…

ElasticSearch中使用bge-large-zh-v1.5进行向量检索(一)

一、准备 系统&#xff1a;MacOS 14.3.1 ElasticSearch&#xff1a;8.13.2 Kibana&#xff1a;8.13.2 BGE是一个常见的文本转向量的模型&#xff0c;在很多大模型RAG应用中常常能见到&#xff0c;但是ElasticSearch中默认没有。BGE模型有很多版本&#xff0c;本次采用的是bg…

享元模式:优化资源利用的高效策略

在面向对象的软件开发中&#xff0c;享元模式是一种结构型设计模式&#xff0c;旨在减少内存使用&#xff0c;通过共享尽可能多的相似对象来提高应用程序的效率。本文将详细介绍享元模式的定义、实现、应用场景以及优缺点。 1. 享元模式的定义 享元模式&#xff08;Flyweigh…

手写一个简单的 OrbitControls 轨道控制器

手写一个简单的 OrbitControls 轨道控制器 相信使用过THREE.JS的同学&#xff0c;都知道 OrbitControls 这个的轨道控制器&#xff0c;他是绕着一个观察点&#xff0c;来进行什么什么的… 反正就是那么个意思。 所以很明显OrbitControls的运动轨迹是一个球体&#xff0c;他是绕…

软件定义车队面临网络安全的曲折之路

当以色列 REE Automotive 设计其 P7 电动汽车底盘时&#xff0c;它是从软件开始工作的&#xff1a;扁平的车辆底盘完全可配置&#xff0c;每个轮胎附近有四个独立的模块&#xff0c;用于转向、制动、悬架和动力传动系统&#xff0c;每个模块均由电子驱动控制单元&#xff08;EC…