- 论坛徽章:
- 0
|
机器的配置如下:
=======================================
4个CPU节点, 24个计算单元,超线程为48个cpu, 1.8GHZ
内存256G
一个巨牛逼的SSD卡,顺序读2G,顺序写1G,随机读1-2G,随机写1G(你没看错)
内核版本 rhel5u2 (2.6.18-92)
=======================================
现有问题如下:
用directIO时:
dd if=/dev/zero of=test.date oflag=direct bs=1M count=10240 # 写10G文件 directIO
顺序写速度可达1G, cpu无压力
走pagecache时
dd if=/dev/zero of=test.date bs=1M count=10240 # 写10G文件 pagecache
速度500M, cpu 100%,几乎全在sys态
仔细观察了下,此时瓶颈在 pagecache分配内存时,
用 watch -n1 " awk 'BEGIN{X}/free/{X+= \$3}END{print X}' /proc/zoneinfo " 观察内存
发现每秒也就分配个500M左右
结合 1) cpu 100% ;2) 几乎全在sys态; 3) zoneinfo free中下降的速度,推测出pagecache(写时)分配速度比较慢
只有SSD卡顺序写速度的一半
同样的测试又应用到顺序读上, pagecache分配速度变为1G, 但依然只有SSD卡顺序读速度的一半
然后怀疑是单线程pagecache分配比较慢
于是开了3个dd , 用 numactl 分别定到三个不同的cpu上,
速度反而更慢了,难道有全局锁?
以前没用过这么快的SSD存储设备,从来没感受到过内存是瓶颈,因此很奇怪
不晓得是内核版本问题,还是配置问题,不知道各位有没有遇到?
另外,同样的测试在同样机器配置的 6u3下也做了, 结果也类似。 |
|