blk-mq-sysfs.c生成了一些其他的nvme的统计项,

有多少个online的cpu,在驱动加载的时候会默认生成多少个队列,除非内存不足或者在保留内核中,则会减少。

[root@localhost mq]# ls
0 10 12 14 16 18 2 21 23 25 27 29 30 32 34 36 38 4 41 43 45 47 49 50 52 54 56 58 6 61 63 65 67 69 70 72 74 76 78 8
1 11 13 15 17 19 20 22 24 26 28 3 31 33 35 37 39 40 42 44 46 48 5 51 53 55 57 59 60 62 64 66 68 7 71 73 75 77 79 9

随便进入一个队列,可以看到如下的打印:

[root@localhost mq]# cd 0
[root@localhost 0]# ls
active  cpu0  cpu_list  dispatched  pending  queued  run  tags

比如我们要查看nvme3这个设备的io提交情况:

for i in {0..79} ;do echo $i"cpu";cat /sys/block/nvme3n1/mq/$i/dispatched|awk 'NR==2{print}';done

0cpu1    394956
1cpu1    374817
2cpu1    331803
3cpu1    305250
4cpu1    315251
5cpu1    311434
6cpu1    304236
7cpu1    1180365-----------------可以看到,这个值比其他的队列偏高
8cpu1    317816
9cpu1    324039
10cpu1    301696
11cpu1    308175
12cpu1    308011
13cpu1    311117
14cpu1    302730
15cpu1    307697
16cpu1    310814
17cpu1    303113
18cpu1    304176
19cpu1    291003
20cpu1    429206
21cpu1    395612
22cpu1    352658
23cpu1    324926
24cpu1    322888
25cpu1    317867
26cpu1    307749
27cpu1    318038
28cpu1    315220
29cpu1    316902
30cpu1    314553
31cpu1    327750
32cpu1    323689
33cpu1    310986
34cpu1    319291
35cpu1    313652
36cpu1    329242
37cpu1    318131
38cpu1    314649
39cpu1    317828
40cpu1    304262
41cpu1    271454
42cpu1    233083
43cpu1    225090
44cpu1    216841
45cpu1    204718
46cpu1    210182
47cpu1    208971
48cpu1    200567
49cpu1    216085
50cpu1    205207
51cpu1    206309
52cpu1    225562
53cpu1    206230
54cpu1    205445
55cpu1    212910
56cpu1    223439
57cpu1    218819
58cpu1    201218
59cpu1    213536
60cpu1    323561
61cpu1    295333
62cpu1    256412
63cpu1    232104
64cpu1    222467
65cpu1    216440
66cpu1    223645
67cpu1    222626
68cpu1    223895
69cpu1    218320
70cpu1    221901
71cpu1    229034
72cpu1    227548
73cpu1    219187
74cpu1    216212
75cpu1    207302
76cpu1    227482
77cpu1    213950
78cpu1    209072
79cpu1    219765

由于我们是一个核一个队列,且按照nvme的io提交策略,在那个cpu上提交的io,在配置了rq_affinity为2的情况下,则肯定在那个cpu

上完成,这样的话,偏高的那个cpu的iowait将会比其他的盘要高,因为它接受的提交次数最多。

对于应用来说,一般使用nvme的时候都进行了绑核,这样,找出对应绑核的线程,可以strace出它为什么提交的io次数偏多。

0cpu       13949561cpu       13748172cpu       13318033cpu       13052504cpu       13152515cpu       13114346cpu       13042367cpu       111803658cpu       13178169cpu       132403910cpu       130169611cpu       130817512cpu       130801113cpu       131111714cpu       130273015cpu       130769716cpu       131081417cpu       130311318cpu       130417619cpu       129100320cpu       142920621cpu       139561222cpu       135265823cpu       132492624cpu       132288825cpu       131786726cpu       130774927cpu       131803828cpu       131522029cpu       131690230cpu       131455331cpu       132775032cpu       132368933cpu       131098634cpu       131929135cpu       131365236cpu       132924237cpu       131813138cpu       131464939cpu       131782840cpu       130426241cpu       127145442cpu       123308343cpu       122509044cpu       121684145cpu       120471846cpu       121018247cpu       120897148cpu       120056749cpu       121608550cpu       120520751cpu       120630952cpu       122556253cpu       120623054cpu       120544555cpu       121291056cpu       122343957cpu       121881958cpu       120121859cpu       121353660cpu       132356161cpu       129533362cpu       125641263cpu       123210464cpu       122246765cpu       121644066cpu       122364567cpu       122262668cpu       122389569cpu       121832070cpu       122190171cpu       122903472cpu       122754873cpu       121918774cpu       121621275cpu       120730276cpu       122748277cpu       121395078cpu       120907279cpu       1219765

转载于:https://www.cnblogs.com/10087622blog/p/8065424.html

linux的nvme驱动需要关心的统计项相关推荐

  1. Linux中nvme驱动详解

    NVMe离不开PCIe,NVMe SSD是PCIe的endpoint.PCIe是x86平台上一种流行的bus总线,由于其Plug and Play的特性,目前很多外设都通过PCI Bus与Host通信 ...

  2. 重置linux内核,Linux Kernel 驱动非授权重置统计漏洞

    Linux Kernel是开放源码操作系统Linux所使用的内核,存在SysKonnect FDDI驱动非授权重置统计漏洞. 受影响系统: Linux kernel 2.6.x 不受影响系统: Lin ...

  3. linux kernel网络驱动

    Linux Device Driver书籍(17) http://linux.chinaunix.net/techdoc/develop/2008/09/28/1035250.shtml 第 17 章 ...

  4. Linux内核网络设备驱动

    本文首先从宏观上介绍数据包的接收过程,然后详细介绍了Linux网络设备驱动的工作过程,最后介绍网卡监控与调优,包括网络数据包总数.丢包.错包数量的相关统计. 1. 接收数据包过程概述 介绍数据包收包过 ...

  5. Linux服务器网卡驱动安装及故障排除(转)

    Linux服务器网卡驱动安装及故障排除(转) 转自:http://www.ccw.com.cn/server/yyjq/htm2005/20050817_15OF4.htm感谢原创作者 曹江华 Lin ...

  6. Linux块设备驱动总结

    <Linux设备驱动程序>第十六章 块设备驱动程序读书笔记 简介 一个块设备驱动程序主要通过传输固定大小的随机数据来访问设备 Linux内核视块设备为与字符设备相异的基本设备类型 Linu ...

  7. 支持nvme的linux_Linux nvme驱动初探

    本篇研究的nvme驱动基于Linux 3.10.73 ,为什么选择这个版本呢,因为这个版本之后Linux 块层马上就换成支持多队列(可以参考Linux块层多队列之引入内核),小编的SUSE 11.3也 ...

  8. Linux SD卡驱动开发(五) —— SD 卡驱动分析Core补充篇

    Core层中有两个重要函数 mmc_alloc_host 用于构造host,前面已经学习过,这里不再阐述:另一个就是 mmc_add_host,用于注册host 前面探测函数s3cmci_probe, ...

  9. linux下usb驱动配置文件,Linux环境下USB的原理、驱动和配置

    随着生活水平的提高,人们对USB设备的使用也越来越多,鉴于Linux在硬件配置上尚不能全部即插即用,因此关于Linux如何配置和使用,成为困扰我们的一大问题.本文引用地址:http://www.eep ...

最新文章

  1. html鼠标位置采集,css – HTML – 相对于鼠标指针的工具提示位置
  2. Altium Designer 在pcb下导入的原件引脚是绿的
  3. C++ wchar_t转char
  4. 函数的调用过程——栈帧。
  5. 看过这篇数据分析,再也不要说你是凭实力单身了!
  6. html整人js代码大全,Fool.js恶搞整人网页特效jQuery插件
  7. fw150rm刷openwrt固件_迅捷FW150R刷TP741N后再刷Openwrt和DDWRT以及固件还原
  8. 财务自由之路读书笔记
  9. python 获取微信语音消息_GitHub - advancer-debug/Python_wechat: Python实现微信自动回复及接入聊天机器人...
  10. 企业邮箱设置,企业邮箱服务器怎么设置?
  11. The Truman Show
  12. 关于 css的一些 基本应用 可供回忆
  13. 计算机组成原理-存储系统
  14. 9.9 买礼物的艰辛 2719
  15. FFMPEG 显示音频频谱图
  16. 怎样用万用表检测贴片三极管
  17. 区块链到底是不是骗局
  18. [Unity2D/3D]实用的血条制作(第二期)
  19. 怎么在线录制电脑内部声音
  20. 什么是api应用程序接口?

热门文章

  1. 用MXnet实战深度学习之二:Neural art
  2. 图像处理(三)图像分割(1)Random Walks分割
  3. matlab中的containers.Map()
  4. Linux 开机文件系统发生错误
  5. 【从零开始自制CPU之学习篇03】锁存器与触发器
  6. Facebook 宣布开源无线设备 打造全新5G世界
  7. maven 工程启动找不到 Spring ContextLoaderListener 的解决办法
  8. Maven中如何禁止插件(plugin)在子模块(module)上执行
  9. JavaScript 弱类型
  10. oracle PL/SQL