1. PSI_压力阻塞信息

1.1 PSI的使用



当CPU、memory或IO设备处于竞争状态,业务负载会遭受时延毛刺、吞吐量降低,及面临OOM的风险。
 
psi能够实时的提供相关信息,因此系统可基于psi实现动态的负载管理。如实施卸载、迁移、策略性的停止或杀死低优先级或可重启的批处理任务。

1.1.1 压力信息查看

# cpu 状态
tan@tan:~$ cat /proc/pressure/cpu
some avg10=0.10 avg60=0.41 avg300=0.21 total=1135875
full avg10=0.00 avg60=0.02 avg300=0.00 total=358411
tan@tan:~$
#io 状态
tan@tan:~$ cat /proc/pressure/io
some avg10=1.70 avg60=10.00 avg300=8.05 total=35190768
full avg10=1.70 avg60=9.40 avg300=7.50 total=32714449
tan@tan:~$
# memory状态
tan@tan:~$ cat /proc/pressure/memory
some avg10=0.00 avg60=0.00 avg300=0.00 total=0
full avg10=0.00 avg60=0.00 avg300=0.00 total=0
tan@tan:~$

some 行代表至少有一个任务阻塞于特定资源的时间占比。
full行代表所有非idle任务同时阻塞于特定资源的时间占比。
avg代表阻塞时间占比(百分比),为最近10秒、60秒、300秒内的均值。
total代表总阻塞时间(单位微秒),可用于观察时延毛刺,这种毛刺可能在均值中无法体现。

1.1.2 用户态监视例子

  #include <errno.h>#include <fcntl.h>#include <stdio.h>#include <poll.h>#include <string.h>#include <unistd.h>/* 监控内存部分阻塞,监控时间窗口为1秒、阻塞门限为150毫秒。*/int main() {const char trig[] = "some 150000 1000000";struct pollfd fds;int n;fds.fd = open("/proc/pressure/io", O_RDWR | O_NONBLOCK);if (fds.fd < 0) {printf("/proc/pressure/memory open error: %s\n",strerror(errno));return 1;}fds.events = POLLPRI;if (write(fds.fd, trig, strlen(trig) + 1) < 0) {printf("/proc/pressure/memory write error: %s\n",strerror(errno));return 1;}printf("waiting for events...\n");while (1) {n = poll(&fds, 1, -1);if (n < 0) {printf("poll error: %s\n", strerror(errno));return 1;}if (fds.revents & POLLERR) {printf("got POLLERR, event source is gone\n");return 0;}if (fds.revents & POLLPRI) {printf("event triggered!\n");} else {printf("unknown event received: 0x%x\n", fds.revents);return 1;}}return 0;}

根据 1.1.1 压力信息查看 可以知道占空比最大的是io事件,因此 1.1.2 用户态监视例子 修改为监控io事件。

tan@tan:~/toolLinux$ vim psi.c
tan@tan:~/toolLinux$ gcc psi.c  -o psi
tan@tan:~/toolLinux$ sudo ./psi
[sudo] password for tan:
waiting for events...
event triggered!
event triggered!
event triggered!

根据psi中 io的 avg10=1.70, 10000 *1.7% / 10 = 170ms,170ms 大于150ms,所以 都成功的监听到了事件出发。

更多详细得解读可以参考 2.1 技术参考

2. 总结

进入linux大门:可以看哈这个视屏
学习还是得靠自己。❤️

2.1 技术参考

参考链接1:https://blog.csdn.net/shift_wwx/article/details/121537332

PSI_压力阻塞信息相关推荐

  1. python中showinfo_python – Tkinter中的非阻塞信息对话框

    我需要一个简单的信息框来显示一些状态输出,我可以使用print将其转储到控制台.我找到的最简单的可能性如下: import Tkinter as tk root = tk.Tk() root.with ...

  2. 关于查询MySQL事务阻塞信息,你还可以这样玩?

    关注我们获得更多内容 作者 | 陈龙,云和恩墨西区工程师,一线服务过金融等行业,精通 oracle 性能优化,故障诊断,特殊恢复领域 . 前言 众所周知 innodb 是支持事务型的存储引擎,在日常运 ...

  3. 【LMKD】 二 PSI 压力失速信息

    基于Android的车载操作系统 目录 写在前面 为了更好的识别资源冲突,并易于管理Facebook数据中心的系统过载问题.Facebook内核团队开发了PSI机制.PSI是一种通过Linux 内核获 ...

  4. SQL Server 监控统计阻塞脚本信息

    数据库产生阻塞(Blocking)的本质原因 :SQL语句连续持有锁的时间过长 ,数目过多, 粒度过大.阻塞是事务隔离带来的副作用,它是不可避免的,而且是一个数据库系统常见的现象. 但是阻塞的时间和出 ...

  5. (转)SQL Server 监控统计阻塞脚本信息

    数据库产生阻塞(Blocking)的本质原因 :SQL语句连续持有锁的时间过长 ,数目过多, 粒度过大.阻塞是事务隔离带来的副作用,它是不可避免的,而且是一个数据库系统常见的现象. 但是阻塞的时间和出 ...

  6. sqlserver监控阻塞(死锁)具体情况

    sqlserver监控阻塞(死锁)具体情况 公司sqlserver的监控系统主要是采用zabbix监控,但是zabbix的监控只能通过性能计数器给出报警,而无法给出具体的阻塞情况,比如阻塞会话.语句. ...

  7. Oracle优化02-锁和阻塞

    思维导图 概述 之前梳理了一篇博文 Oracle-锁解读 首先弄清楚两个概念: 并发 concurrency: 超过两个以上的用户对相同的数据做修改 并行 parallel:将一件事情分成很多小的部分 ...

  8. linux下的进程信号,信号注册、处理方式、注销,信号阻塞及volatile代码优化

    信号量与信号的区别! 信号量:内核中的一个计数器/实现进程间同步(条件判断合理性)与互斥(同一时间唯一访问安全性). 信号:进程之间事件异步通知的一种方式,是一种软中断,非信号量. 作用:操作系统通过 ...

  9. 数位板驱动压力测试_【又来甩锅了】数位板/数位屏延迟怎么办?

    最近看到一个绘王用户制作的开箱视频,多角度展示了新上市的Kamvas 16数位屏的实际使用效果,视频里面,有一段是专门测试'数位屏的延迟',让官方君发现一个用户对产品认知的误区. 数位板和鼠标键盘一样 ...

  10. 译码阻塞和死锁的等待资源

    译码阻塞和死锁的等待资源 常用等待资源介绍 以下表格列出了常用等待资源的格式和意义. Resource Format Example Table DatabaseID:ObjectID:IndexID ...

最新文章

  1. ubuntu+php+mysql+apache安装配置
  2. Fresco源码分析之Hierarchy
  3. unity3d android 回调,大神们,请问unity和Android交互的时候,为什么总是调用不到方法...
  4. hbuilderx制作简单网页_网页制作的基本步骤是怎样的?制作简单网页的具体操作有哪些呢?...
  5. JavaScript实现combinationSum组合和算法(附完整源码)
  6. C 语言高效编程与代码优化
  7. 电子设计常用总线--QSPI
  8. lintcode:递归打印数字
  9. sizeof()计算结构体的大小
  10. newcondition java_Java并发Condition接口
  11. thinking in java -- notes-2
  12. 请解释各种自动装配模式的区别
  13. 快视频:剽窃了B站的数据库?360的常规操作了。
  14. 20190905:(leetcode习题)爬楼梯
  15. python为什么叫爬虫-python为什么叫爬虫?为什么python开发会突然火起来?
  16. Win10安装Ubuntu18.04双系统,图文详解,全网最详细教程
  17. 数字图像处理(极简) 第一章 概述(docx)
  18. 毕向东_JavaScript视频教程_DOM
  19. 浅谈数据挖掘与机器学习
  20. 查找计算机里包含相关文字,windows7如何搜索包含关键字的文件_win7电脑文件怎么查关键字文件...

热门文章

  1. 什么样的运动耳机比较好、跑步运动耳机推荐
  2. Andriod中如何新建lunch项
  3. 随手写的绿色征途手游的脚本辅助代码
  4. Google guava之Multimap简介说明
  5. Flyway数据库版本管理工具
  6. 搭建服务器提供IOS IPA包下载
  7. 企业证书,不上app store的ipa下载方式
  8. 自然语言处理——中英文分词工具(还可做词性标注与命名实体识别)
  9. dagre-d3 基于d3.js v4版本以上
  10. 第三部分:成交动力学之十大成交激素——9、紧迫感