在过去几年里, Linux扩展问题改造着Linux核心。Christoph Lameter借峰会机会讲述了Linux可扩展性的当前状态。现在Linux能走多远? 他的回答是: 如果你的硬件配置是单一内存总线, 那么Linux可以扩展到4到8个处理器, 再多的话,内存总线的带宽就 不够用了, 需要NUMA技术来建造更大的系统。Linux 可运行在有32-512个CPUde SGI Altix系统里, 也可以跑1024个CPU , 但是有些限制了。SUSE已经测试了带有4096个CPU和8TB内存 的1024个节点的Altix系统,但是要一个小时才能启动起来。 启动慢是因为大部分的系统初始化工作由一个CPU完成,负责启动的CPU 要查找所有的设备和内存, 而该系统又有大量的设备和内存。如果初始化的任务分摊到每个节点上,就是各个节点负责查找自己的设备和内存,那么启动的过程就大大加快了。 当有64个以上CPU时,一些扩展性的问题就冒出来。一些数据结构如radix trees, the dcache, inode locks,就开始发生竞争。减少该问题的一个方法就是在各个节点复制一些共享的目录。 其他问题还有内存均衡。当前,一个硬件失败,将导致整个系统崩溃,因此有必要设计一种方法,使得发生故障节点不影响其他节点的工作。 未来的工作: 要扩展到1024或4096个处理器, 还包括多CPU带来的问题,如清理数据结构,无锁算法等等。一些数据结构会随着CPU、节点、内存zone的数目而变化,在大系统里,这些结构可能很大。Christoph目前的工作就是降低内存zone的个数。4096字节的页将会带来许多问题,以后可能需要增大页的大小。当进程在节点之间漂移时,大的页面有利于调度器定位进程使用的页。 扩展的问题将继续存在。目前的挑战是1024以上的CPU。 原文出处----http://lwn.net/Articles/191929/