问题描述
- NUMA架构计算机内存高效操作问题
-
配置是:超微X9DRL-IF,2颗Intel XEON处理器,128GB内存,运行2008 R2。
目前从PCIE采集卡通过DMA收数据,DMA完成中断周期100ms,DMA大小64MB,需要将该数据拷贝到内存里的更大缓冲区缓存后处理,用VirtualAlloc()申请了20GB内存,结果测试显示数据拷贝的时间达50-60ms最坏的时候回达到秒级以上,这和通过Everest测试的结果相差太大,而且,如果再提高采集速度基本就不可能了;后来通过VirtualAllocExNuma()函数申区请与DMA缓冲区同一节点的内存,测试发现,有时候拷贝时间会变为15ms左右(原来是50ms),但有时候仍回维持在50度,最坏时仍达秒级以上。
那怎样才能使内存访问效率提高,希望高手们不吝赐教,谢谢
解决方案
没有这方面的经验,看看这两篇文章能不能帮你
http://stackoverflow.com/questions/3763351/memory-access-time-slow-with-virtualallocexnuma-on-windows-7-64
https://msdn.microsoft.com/en-us/library/windows/desktop/aa965223(v=vs.85).aspx
时间: 2024-11-03 10:57:29