openGauss学习笔记-216 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-CPU
文章目录
- openGauss学习笔记-216 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-CPU
- 216.1 CPU
- 216.2 查看CPU状况
- 216.3 性能参数分析
openGauss学习笔记-216 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-CPU
获取openGauss节点的CPU、内存、I/O和网络资源使用情况,确认这些资源是否已被充分利用,是否存在瓶颈点。
216.1 CPU
通过top命令查看openGauss内节点CPU使用情况,分析是否存在由于CPU负载过高导致的性能瓶颈。 top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。
参数解释:
- d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。
- b:以批次的方式执行top。
- n:与b配合使用,表示需要进行几次top命令的输出结果。
- p:指定特定的pid进程号进行观察。
216.2 查看CPU状况
查询服务器CPU的使用情况主要通过以下方式:
在所有存储节点,逐一执行top命令,查看CPU占用情况。执行该命令后,按“1”键,可查看每个CPU核的使用率。
top - 17:05:04 up 32 days, 20:34, 5 users, load average: 0.02, 0.02, 0.00
Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0%us, 0.3%sy, 0.0%ni, 69.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.3%us, 0.3%sy, 0.0%ni, 69.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.3%us, 0.3%sy, 0.0%ni, 69.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.3%us, 0.3%sy, 0.0%ni, 69.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8038844k total, 7165272k used, 873572k free, 530444k buffers
Swap: 4192924k total, 4920k used, 4188004k free, 4742904k cachedPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 35184 omm 20 0 822m 421m 128m S 0 5.4 5:28.15 gaussdb 1 root 20 0 13592 820 784 S 0 0.0 1:16.62 init
分析时,请主要关注进程占用的CPU利用率。
其中,统计信息中“us”表示用户空间占用CPU百分比,“sy”表示内核空间占用CPU百分比,“id”表示空闲CPU百分比。如果“id”低于10%,即表明CPU负载较高,可尝试通过降低本节点任务量等手段降低CPU负载。
216.3 性能参数分析
1、使用“top -H”命令查看CPU,显示内容如下所示。
14 root 20 0 0 0 0 S 0 0.0 0:16.41 events/3
top - 14:22:49 up 5 days, 21:51, 2 users, load average: 0.08, 0.08, 0.06
Tasks: 312 total, 1 running, 311 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.3%us, 0.7%sy, 0.0%ni, 95.0%id, 2.4%wa, 0.5%hi, 0.2%si, 0.0%st
Mem: 8038844k total, 5317668k used, 2721176k free, 180268k buffers
Swap: 4192924k total, 0k used, 4192924k free, 2886860k cachedPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3105 root 20 0 50492 11m 2708 S 3 0.1 22:22.56 acc-snf4015 gdm 20 0 232m 23m 11m S 0 0.3 11:34.70 gdm-simple-gree 51001 omm 20 0 12140 1484 948 R 0 0.0 0:00.94 top54885 omm 20 0 615m 396m 116m S 0 5.1 0:09.44 gaussdb1 root 20 0 13592 944 792 S 0 0.0 0:08.54 init
2、根据查询结果中“Cpu(s)”分析是系统CPU(sy)还是用户CPU(us)占用过高。
-
如果是系统CPU占用过高,需要查找异常系统进程进行处理。
-
如果是“USER”为omm的openGauss进程CPU占用过高,请根据目前运行的业务查询内容,对业务SQL进行优化。请根据以下步骤,并结合当前正在运行的业务特征进行分析,是否该程序处于死循环逻辑。
a. 使用“top -H -p pid”查找进程内占用的CPU百分比较高的线程,进行分析。
top -H -p 54952查询结果如下所示,top中可以看到占用CPU很高的线程,下面以线程54775为主,分析其为何占用CPU过高。
top - 14:23:27 up 5 days, 21:52, 2 users, load average: 0.04, 0.07, 0.05 Tasks: 13 total, 0 running, 13 sleeping, 0 stopped, 0 zombie Cpu(s): 0.9%us, 0.4%sy, 0.0%ni, 97.3%id, 1.1%wa, 0.2%hi, 0.1%si, 0.0%st Mem: 8038844k total, 5322180k used, 2716664k free, 180316k buffers Swap: 4192924k total, 0k used, 4192924k free, 2889860k cachedPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 54775 omm 20 0 684m 424m 131m S 0 5.4 0:00.32 gaussdb 54951 omm 20 0 684m 424m 131m S 0 5.4 0:00.84 gaussdb 54732 omm 20 0 684m 424m 131m S 0 5.4 0:00.24 gaussdb 54758 omm 20 0 684m 424m 131m S 0 5.4 0:00.00 gaussdb 54759 omm 20 0 684m 424m 131m S 0 5.4 0:00.02 gaussdb 54773 omm 20 0 684m 424m 131m S 0 5.4 0:02.79 gaussdb 54780 omm 20 0 684m 424m 131m S 0 5.4 0:00.04 gaussdb 54781 omm 20 0 684m 424m 131m S 0 5.4 0:00.21 gaussdb 54782 omm 20 0 684m 424m 131m S 0 5.4 0:00.02 gaussdb 54798 omm 20 0 684m 424m 131m S 0 5.4 0:16.70 gaussdb 54952 omm 20 0 684m 424m 131m S 0 5.4 0:07.51 gaussdb 54953 omm 20 0 684m 424m 131m S 0 5.4 0:00.81 gaussdb 54954 omm 20 0 684m 424m 131m S 0 5.4 0:06.54 gaussdbb. 使用“gstack ”查看进程内各线程的函数调用栈。查找上一步骤中占用CPU较高的线程ID对应的线程号。
gstack 54954查询结果如下所示,其中线程ID54775对应线程号是10。
192.168.0.11:~ # gstack 54954 Thread 10 (Thread 0x7f95a5fff710 (LWP 54775)): #0 0x00007f95c41d63c6 in poll () from /lib64/libc.so.6 #1 0x0000000000d3d2d3 in WaitLatchOrSocket(Latch volatile*, int, int, long) () #2 0x000000000095ed25 in XLogPageRead(XLogRecPtr*, int, bool, bool) () #3 0x000000000095f6dd in ReadRecord(XLogRecPtr*, int, bool) () #4 0x000000000096aef0 in StartupXLOG() () #5 0x0000000000d5607a in StartupProcessMain() () #6 0x00000000009e19f9 in AuxiliaryProcessMain(int, char**) () #7 0x0000000000d50135 in SubPostmasterMain(int, char**) () #8 0x0000000000d504ec in MainStarterThreadFunc(void*) () #9 0x00007f95c79b85f0 in start_thread () from /lib64/libpthread.so.0 #10 0x00007f95c41df84d in clone () from /lib64/libc.so.6 #11 0x0000000000000000 in ?? ()
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!

相关文章:
openGauss学习笔记-216 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-CPU
文章目录 openGauss学习笔记-216 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-CPU216.1 CPU216.2 查看CPU状况216.3 性能参数分析 openGauss学习笔记-216 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-CPU 获取openGauss节点的CPU、内存、I/O和网络资源使用情况…...
【教程】Linux使用git自动备份和使用支持文件恢复的rm命令
转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 背景介绍 首先非常不幸地告诉你:Linux 系统的标准 rm 命令不支持文件恢复功能。一旦使用 rm 删除了文件或目录,它们就会从文件系统中永久删除,除非你使用专门的文件恢复工具尝试…...
记录使用M1 Mac开发LVGL嵌入式项目
技术流 使用Gui Guider进行UI设计,生成lvgl code将lvgl code移植到esp32s3开发板 Gui Guider的安装 安装下面流程一步一步进行 LVGL的移植 硬件:esp32-8048s043开发板 开发环境:PlatformIO M1芯片安装ESP32驱动 从https://www.wch.cn…...
【SpringBoot】JWT令牌
📝个人主页:五敷有你 🔥系列专栏:SpringBoot ⛺️稳重求进,晒太阳 什么是JWT JWT简称JSON Web Token,也就是通过JSON形式作为Web应用的令牌,用于各方面之间安全的将信息作为JSON对象传输…...
Python爬虫 Beautiful Soup库详解#4
爬虫专栏:http://t.csdnimg.cn/WfCSx 使用 Beautiful Soup 前面介绍了正则表达式的相关用法,但是一旦正则表达式写的有问题,得到的可能就不是我们想要的结果了。而且对于一个网页来说,都有一定的特殊结构和层级关系,…...
Tkinter教程21:Listbox列表框+OptionMenu选项菜单+Combobox下拉列表框控件的使用+绑定事件
------------★Tkinter系列教程★------------ Tkinter教程21:Listbox列表框OptionMenu选项菜单Combobox下拉列表框控件的使用绑定事件 Tkinter教程20:treeview树视图组件,表格数据的插入与表头排序 Python教程57:tkinter中如何…...
Django中的SQL注入攻击防御策略
Django中的SQL注入攻击防御策略 SQL注入是一种常见的网络安全威胁,可以导致数据库被非法访问和数据泄露。本文将介绍在Django框架中防止SQL注入攻击的关键方法,包括使用参数化查询、使用ORM、进行输入验证和使用安全的编码实践。 SQL注入是一种利用应用程…...
ORM模型类
模型 创建两个表 创建模型类 from django.db import models# Create your models here. class BookInfo(models.Model):name models.CharField(max_length10, uniqueTrue) # 书名pub_date models.DateField(nullTrue) # 发布时间read_count models.IntegerField(default…...
Java强训day14(选择题编程题)
选择题 编程题 题目1 import java.util.Scanner;public class Main {public static void main(String[] args) {//读入年月日(字符串形式读入)Scanner sc new Scanner(System.in);String s sc.nextLine();String[] ss s.split(" ");i…...
Redis核心技术与实战【学习笔记】 - 31.番外篇:Redis客户端如何与服务器端交换命令和数据
简述 Redis 使用 RESP 协议(Redis Serialzation Protocol)协议定义了客户端和服务器端交互的命令、数据的编码格式。在 Redis 2.0 版本中,RESP 协议正式称为客户端和服务器端的标准通信协议。从 Redis 2.0 到 Redis 5.0 ,RESP 协…...
电缆线的阻抗50Ω,真正含义是什么?
当我们提到电缆线的阻抗时,它到底是什么意思?RG58电缆通常指的是50Ω的电缆线。它的真正含义是什么?假如取一段3英尺(0.9144米)长的RG58电缆线,并且在前端测量信号路径与返回路径之间的阻抗。那么测得的阻抗是多少?当然…...
校园团餐SAAS系统源码
## 项目介绍 校园团餐SAAS系统,是全新推出的一款轻量级、高性能、前后端分离的团餐系统,支持微信小程序 。 技术特点 > * 前后端完全分离 (互不依赖 开发效率高) > * 采用PHP8 (强类型严格模式) > * ThinkPHP8.0(轻量级PHP开发框…...
图数据库neo4j入门
neo4j 一、安装二、简单操作<一>、创建<二>、查询<三>、关系<四>、修改<五>、删除 三、常见报错<一>、默认的数据库密码是neo4j,打开浏览器http://localhost:7474登录不上,报错: Neo.ClientError.Security.Unauthorized: The client is un…...
Multisim14.0仿真(五十五)汽车转向灯设计
一、功能描述: 左转向:左侧指示灯循环依次闪亮; 右转向:右侧指示灯循环依次闪亮; 刹车: 所有灯常亮; 正常: 所有灯熄灭。 二、主要芯片: 74LS161D 74LS04D 74…...
2402C++,C++的反向代理
原文 cinatra支持反向代理很简单,5行代码就可以了.先看一个简单的示例: #include "cinatra/coro_http_reverse_proxy.hpp" using namespace cinatra; int main() {reverse_proxy proxy_rr(10, 8091);proxy_rr.add_dest_host("127.0.0.1:9001");proxy_rr.a…...
[职场] 服务行业个人简历 #笔记#笔记
服务行业个人简历 服务员个人简历范文1 姓名: XXX国籍:中国 目前所在地:天河区民族:汉族 户口所在地:阳江身材: 160cm43kg 婚姻状况:未婚年龄: 21岁 培训认证:诚信徽章: 求职意向及工作经历 人才类型:普通求职 应聘职位: 工作年限:职称:初级 求职类型:全职可到职日期:随时 月薪…...
代码随想录算法训练营|day30
第七章 回溯算法 332.重新安排行程51.N皇后37.解数独代码随想录文章详解 332.重新安排行程 (1)参考 创建map存储src,[]dest映射关系,并对[]dest排序 每次取map中第一个dest访问,将其作为新的src,每访问一条src->destÿ…...
PHPExcel导出excel
PHPExcel下载地址 https://gitee.com/mirrors/phpexcelhttps://github.com/PHPOffice/PHPExcel 下载后目录结构 需要的文件如下图所示 将上面的PHPExcel文件夹和PHPExcel.php复制到你需要的地方 这是一个简单的示例代码 <?php$dir dirname(__FILE__); //require_once …...
ubuntu系统下c++ cmakelist vscode debug(带传参的debug)的详细示例
c和cmake的debug,网上很多都需要配置launch.json,cpp.json啥的,记不住也太复杂了,我这里使用cmake插件带有的设置,各位可以看一看啊✌(不知不觉,竟然了解了vscode中配置文件的生效逻辑🤣) 克隆…...
聊聊JIT优化技术
🎬作者简介:大家好,我是小徐🥇☁️博客首页:CSDN主页小徐的博客🌄每日一句:好学而不勤非真好学者 📜 欢迎大家关注! ❤️ 我们知道,想要把高级语言转变成计算…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
6.9本日总结
一、英语 复习默写list11list18,订正07年第3篇阅读 二、数学 学习线代第一讲,写15讲课后题 三、408 学习计组第二章,写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语:复习l默写sit12list17&#…...
运行vue项目报错 errors and 0 warnings potentially fixable with the `--fix` option.
报错 找到package.json文件 找到这个修改成 "lint": "eslint --fix --ext .js,.vue src" 为elsint有配置结尾换行符,最后运行:npm run lint --fix...
