iSCSI 存储上的页面分配失败

iSCSI 存储上的页面分配失败

我们有一个在 Infiniband 总线(ipoib)上运行的 CentOS 6.3 iscsi 服务器(16GB RAM)。

当负载较高时,我可以看到多个错误:

9 月 3 日 23:22:20 stor4 内核:tgtd:页面分配失败。顺序:2,模式:0x20
9 月 3 日 23:22:20 stor4 内核:Pid:3637,通信:tgtd 未受污染 2.6.32 #1
9 月 3 日 23:22:20 stor4 内核:调用跟踪:
9月3日 23:22:20 stor4 内核:[] ? __alloc_pages_nodemask+0x77f/0x940
9月3日 23:22:20 stor4内核:[] ? kmem_getpages+0x62/0x170
9月3日 23:22:20 stor4 内核:[] ? fallback_alloc+0x1ba/0x270
9月3日 23:22:20 stor4 内核:[] ? cache_grow+0x2cf/0x320
9 月 3 日 23:22:20 stor4 内核:[] ? ____cache_alloc_node+0x99/0x160
9月3日 23:22:20 stor4内核:[]?pskb_expand_head+0x64/0x270
9月3日 23:22:20 stor4 内核:[] ? __kmalloc+0x189/0x220
9月3日 23:22:20 stor4内核:[]?pskb_expand_head+0x64/0x270
9月3日 23:22:20 stor4内核:[]?__pskb_pull_tail+0x2aa/0x360
9月3日 23:22:20 stor4内核:[]?tcp_init_tso_segs+0x37/0x50
9月3日 23:22:20 stor4 内核:[] ? dev_queue_xmit+0x4bb/0x6f0
9月3日 23:22:20 stor4内核:[]?neigh_connected_output+0xbd/0x100
9月3日 23:22:20 stor4内核:[]?ip_finish_output+0x237/0x310
9月3日 23:22:20 stor4内核:[] ? ip_output+0xb8/0xc0
9月3日 23:22:20 stor4内核:[]?__ip_local_out+0x9f/0xb0
9月3日 23:22:20 stor4内核:[] ? ip_local_out+0x25/0x30
9月3日 23:22:20 stor4内核:[]?ip_queue_xmit+0x190/0x420
9月3日 23:22:20 stor4内核:[]?sock_aio_write+0x167/0x180
9月3日 23:22:20 stor4内核:[] ? tcp_transmit_skb+0x3fe/0x7b0
9月3日 23:22:20 stor4内核:[] ? tcp_write_xmit+0x1fb/0xa20
9月3日 23:22:20 stor4 内核:[] ? __tcp_push_pending_frames+0x30/0xe0
9月3日 23:22:20 stor4内核:[]?tcp_push_pending_frames+0x33/0x40
9月3日 23:22:20 stor4内核:[] ? do_tcp_setsockopt+0x3d6/0x480
9月3日 23:22:20 stor4内核:[] ? tcp_setsockopt+0x2a/0x30
9月3日 23:22:20 stor4内核:[] ? sock_common_setsockopt+0x14/0x20
9月3日 23:22:20 stor4内核:[] ? sys_setsockopt+0x7f/0xe0
9月3日 23:22:20 stor4内核:[] ? system_call_fastpath+0x16/0x1b
9月3日 23:22:20 stor4 内核:Mem-Info:
9 月 3 日 23:22:20 stor4 内核:节点 0 每 CPU DMA:
9月3日 23:22:20 stor4 内核:CPU 0:hi:0,btch:1 美元:0
9月3日 23:22:20 stor4 内核:CPU 1:hi:0,btch:1 美元:0
9月3日 23:22:20 stor4 内核:CPU 2:hi:0,btch:1 美元:0
9月3日 23:22:20 stor4 内核:CPU 3:hi:0,btch:1 美元:0
9 月 3 日 23:22:20 stor4 内核:节点 0 DMA32 每 CPU:
9月3日 23:22:20 stor4 内核:CPU 0:hi:186,btch:31 美元:183
9月3日 23:22:20 stor4 内核:CPU 1:hi:186,btch:31 美元:23
9月3日 23:22:20 stor4 内核:CPU 2:hi:186,btch:31 美元:183
9月3日 23:22:20 stor4 内核:CPU 3:hi:186,btch:31 美元:181
9 月 3 日 23:22:20 stor4 内核:节点 0 每个 CPU 正常:
9月3日 23:22:20 stor4 内核:CPU 0:hi:186,btch:31 美元:171
9月3日 23:22:20 stor4 内核:CPU 1:hi:186,btch:31 美元:29
9月3日 23:22:20 stor4 内核:CPU 2:hi:186,btch:31 美元:32
9月3日 23:22:20 stor4 内核:CPU 3:hi:186,btch:31 美元:32
9月3日 23:22:20 stor4 内核:active_anon:1875 inactive_anon:2473isolated_anon:0
9月3日 23:22:20 stor4 内核:active_file:1243637 inactive_file:2505055 independent_file:0
9月3日 23:22:20 stor4 内核:不可驱逐:0 脏:268338 写回:0 不稳定:0
9月3日 23:22:20 stor4 内核:空闲:86050 slab_reclaimable:132377 slab_unreclaimable:23744
9月3日 23:22:20 stor4 内核:映射:1293 shmem:222 页表:720 反弹:0
9 月 3 日 23:22:20 stor4 内核:节点 0 DMA 空闲:15732kB 最小:124kB 最低:152kB 最高:184kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB 隔离(匿名):0kB 隔离(文件):0kB 存在:15332kB mlocked:0kB dirty:0kB writeback:0kB 映射:0kB shmem:0kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB 不稳定:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable?是
9月3日 23:22:20 stor4 内核:lowmem_reserve[]: 0 2172 16060 16060
9 月 3 日 23:22:20 stor4 内核:节点 0 DMA32 空闲:107544kB 最小:18268kB 低:22832kB 高:27400kB active_anon:468kB inactive_anon:2364kB active_file:566208kB inactive_file:976112kB 不可驱逐:0kB 隔离(匿名):0kB 隔离(文件):0kB 存在:2224900kB mlocked:0kB 脏:96816kB 回写:0kB 映射:908kB shmem:12kB slab_reclaimable:176940kB slab_unreclaimable:968kB kernel_stack:64kB 页表:192kB 不稳定:0kB 反弹:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable?否
9月3日 23:22:20 stor4 内核:lowmem_reserve[]:0 0 13887 13887
9 月 3 日 23:22:20 stor4 内核:节点 0 正常 空闲:220924kB 最小:116772kB 低:145964kB 高:175156kB active_anon:7032kB inactive_anon:7528kB active_file:4408340kB inactive_file:9044108kB 不可驱逐:0kB 隔离(匿名):0kB 隔离(文件):0kB 存在:14220800kB mlocked:0kB 脏:976536kB 写回:0kB 映射:4264kB shmem:876kB slab_reclaimable:352568kB slab_unreclaimable:94008kB kernel_stack:2048kB 页表:2688kB 不稳定:0kB 反弹:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable?否
9月3日 23:22:20 stor4 内核:lowmem_reserve[]:0 0 0 0
9月3日 23:22:20 stor4 内核:节点 0 DMA:1*4kB 0*8kB 1*16kB 1*32kB 1*64kB 0*128kB 1*256kB 0*512kB 1*1024kB 1*2048kB 3*4096kB = 15732kB
9月3日 23:22:20 stor4 内核:节点 0 DMA32:16305*4kB 4381*8kB 353*16kB 8*32kB 1*64kB 1*128kB 0*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 107900kB
9月3日 23:22:20 stor4内核:节点0正常:14548*4kB 14808*8kB 2420*16kB 31*32kB 5*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 1*4096kB = 220784kB
9月3日 23:22:20 stor4 内核:共计 3748822 个页面缓存页面
9 月 3 日 23:22:20 stor4 内核:交换缓存中有 0 页
9 月 3 日 23:22:20 stor4 内核:交换缓存统计信息:添加 0、删除 0、查找 0/0
9月3日 23:22:20 stor4 内核:可用交换 = 975864kB
9月3日 23:22:20 stor4 内核:总交换空间 = 975864kB
9月3日 23:22:20 stor4 内核:4194303 页 RAM
9月3日 23:22:20 stor4 内核:保留126915页
9月3日 23:22:20 stor4 内核:共享了 3753534 个页面
9月3日 23:22:20 stor4 内核:213500 个页面未共享

TCP 堆栈和 VM 配置:

net.core.rmem_max = 83886080
net.core.wmem_max = 83886080
net.core.rmem_default = 65536
net.core.wmem_default = 65536
net.ipv4.tcp_rmem = 40960 1048560 4194304
net.ipv4.tcp_wmem = 40960 196608 4194304
net.ipv4.tcp_mem = 16388608 16388608 16388608
vm.min_free_kbytes=135168

其他调整:

/sbin/blockdev --setra 16384 /dev/sdb
echo 2048 > /sys/block/sdb/queue/nr_requests

问题可能出在哪里?谢谢。

答案1

您可以尝试一些方法...但是 IPoIB 上的 iSCSI 听起来有点混乱。显然,如果您使用 Infiniband,性能就很重要。

  • 除了错误之外,性能如何?
  • 这是可重现的吗?您可以根据需要触发它吗?还是消息只是堆积在dmesg环形缓冲区中?
  • 您在挂载的 iSCSI 设备上使用什么文件系统?这可能会对我的建议产生影响。

无论如何,由于你使用的是 CentOS 6.3,我会认真考虑启用tuned-adm 配置文件设置。对于您来说,如果尚未安装,请运行yum install tuned tuned-utils并尝试“企业存储”配置文件:

tuned-adm profile enterprise-storage

这将使你的 I/O 电梯移动到截止期限调度器,将其更改kernel.sched_min_ granularity_ns为 10ms,对 vm 子系统进行一些调整,删除写入屏障,修改 CPU 调节器并提高磁盘预读能力。您还可以将 sysctl 和 sysfs 设置移动到自定义配置文件。

可以使用 恢复到原始设置tuned-adm off。这些命令可以安全地即时运行。您可以测试并报告结果吗?

相关内容