NVMe 驱动中断绑定解决CPU lock
来源:互联网 发布:Wordpress优化 编辑:程序博客网 时间:2024/04/28 20:03
NVMe驱动中断绑定
1. 要想理清绑定先把irqbalance关闭
2. Kernel 和NVMe 驱动都可以和中断绑定相关
a. CentOS 6.6 之前的版本,NVMe 设备默认是绑定在最近的NUMA node的的第一个core,. 如果有多个强悍的PCIe SSD 在一个core上就有问题啦(CPU lock),哈哈!
[root@memblaze-lyk2 wa-script]# cat /etc/issue
CentOS release 6.6 (Final)
[root@memblaze-lyk2 wa-script]# fio --rw=write --iodepth=64 --numjobs=12 --loop=1 --bs=4k --ioengine=libaio --output=precond-1.log --name=preCondJob --filename=/dev/nvme0n1 --direct=1
[root@memblaze-lyk2 wa-script]# cat /proc/interrupts | grep nvme
109: 524206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q0, nvme0q1
110: 301 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q2
111: 297792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q3
112: 111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q4
113: 189682 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q5
114: 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q6
115: 104160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q7
116: 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q8
117: 40872 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q9
118: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q10
119: 10006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q11
120: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q12
121: 1475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q13
122: 231 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q14
123: 113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q15
124: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q16
[root@memblaze-lyk2 wa-script]# lspci | grep Non
06:00.0 Non-Volatile memory controller: Device 1c5f:0540 (rev 05)
b. CentOS 7.1 就变的智能啦,NVMe 设备默认是绑定在最近的NUMA node的所有core上
[root@memblaze-lyk1 ~]# cat /proc/interrupts | grep nvme
121: 154 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q0, nvme0q1
122: 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q2
123: 40 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q3
124: 3 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q4
125: 4 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q5
126: 2 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q6
127: 5 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q7
128: 2 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q8
129: 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q9
130: 3 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q10
131: 7 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q11
132: 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q12
[root@memblaze-lyk1 ~]# uname -a
Linux memblaze-lyk1 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@memblaze-lyk1 ~]# fio --rw=write --iodepth=64 --numjobs=12 --loop=1 --bs=4k --ioengine=libaio --output=precond-1.log --name=preCondJob --filename=/dev/nvme0n1 --direct=1
^C[root@memblaze-lyk1 ~]cat /proc/interrupts | grep nvme
121: 154 0 0 0 0 0 0 0 175630 0 0 0 IR-PCI-MSI-edge nvme0q0, nvme0q1
122: 0 0 0 0 0 0 0 0 0 0 1557 0 IR-PCI-MSI-edge nvme0q2
123: 208478 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q3
124: 3 0 0 0 144 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q4
125: 4 0 0 0 0 0 146254 0 0 0 0 0 IR-PCI-MSI-edge nvme0q5
126: 2 0 0 0 0 0 0 0 69 0 0 0 IR-PCI-MSI-edge nvme0q6
127: 5 0 0 0 0 0 0 0 0 0 172702 0 IR-PCI-MSI-edge nvme0q7
128: 100 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q8
129: 0 0 177603 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q9
130: 3 0 0 0 78 0 0 0 0 0 0 0 IR-PCI-MSI-edge nvme0q10
131: 7 0 0 0 0 0 215733 0 0 0 0 0 IR-PCI-MSI-edge nvme0q11
132: 0 0 0 0 0 0 0 0 88 0 0 0 IR-PCI-MSI-edge nvme0q12
[root@memblaze-lyk1 ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@memblaze-lyk1 ~]# lspci | grep Non
06:00.0 Non-Volatile memory controller: Device 1c5f:0540 (rev 05)
- NVMe 驱动中断绑定解决CPU lock
- NVMe驱动中断绑定
- CentOS 7.1 NVMe 中断绑定最近的NUMA node
- 网卡中断绑定cpu亲核性
- NVMe 中断请求
- 工作笔记:linux绑定CPU、软中断
- 多队列网卡设置CPU中断绑定
- 观察中断情况, 绑定 指定的cpu
- NVMe驱动解析-前言
- linux NVMe驱动总结
- nvme 驱动详解 之1
- NVMe驱动解析-注册设备
- NVMe驱动解析-DMA传输
- linux下绑定硬件中断到不同的cpu
- linux 内核指定 中断绑定至0号cpu
- 如何将网卡中断绑定到特定cpu?
- 设备中断绑定到特定CPU(SMP IRQ AFFINITY)
- 设备中断绑定到特定CPU(SMP IRQ Affinity)
- cocoaPods import导入时没有提示的解决办法
- OC代码小技巧
- backbone中动态新增的元素节点触发事件的问题有两种解决方法
- Android Studio 手机运行时中文乱码
- shell 命令行实现
- NVMe 驱动中断绑定解决CPU lock
- 项目启动不起来,tomcat启动,访问报404错误,查看原因如下
- 2016-01-04
- linux shell中的命令自动补全(compgen complete)与 命令行参数解析
- device eth0 does not seem to be present, delaying initialization
- 系统流量能力提升改造点--线上压测实验。
- 【iOS】数据库SQLite3的使用
- introduction of velocity
- Objective-C Runtime