16
|
David Cournapeau · 技术社区 · 14 年前 |
![]() |
1
2
因为,复制一个大文件(比可用的缓冲区缓存大)通常需要通过缓冲区缓存,这通常会导致抛出最近使用较少的页面,然后必须将这些页面返回。 其他一些进程偶尔会执行少量的IO(比如只统计一个目录),然后将它们的缓存全部销毁,必须进行物理读取才能将这些页面恢复。 希望这可以通过copy命令来解决,该命令可以检测到这类问题,并相应地通知内核(例如,使用posix_fadvise),这样,不需要随后读取的文件的大容量一次性大容量传输就不会完全丢弃缓冲区缓存中的所有干净页,而现在通常都会发生这种情况。 |
![]() |
2
4
它可能是当前调度程序的一个限制。google“galbraith's sched:autogroup patch”或“linux miracle patch”(是的,真的!).显然有一个200行的补丁正在被改进和合并,这增加了组调度,关于 Linus says :
视频前后 here . |
![]() |
3
1
高IO操作率通常意味着必须由CPU提供服务的高中断率,这需要CPU时间。
在情况下
|
![]() |
4
0
关于中断,我猜想CAF的假设是:
您需要测试的统计数据是每个CPU每秒中断的次数。 我不知道是否可以将中断连接到单个CPU:请参见 http://www.google.com/#q=cpu+affinity+interrupt 更多详情。 有一点我不明白(这是我第一次看这个问题):我笔记本电脑上的PerfMon(运行Windows Vista)显示2000次中断/秒(每个内核1000次),当它几乎空闲时(除了显示PerfMon之外什么都不做)。我无法想象哪个设备每秒产生2000次中断,我认为这足以摧毁CPU缓存(我的猜测是,繁忙线程的CPU量子大约是50毫秒)。它还显示平均每秒350 dpcs。
硬件差异的一种类型可能是磁盘硬件和磁盘设备驱动程序,产生或多或少的中断和/或其他争用。 |
|
KhaledWas · 单核处理器的多线程代码和多核处理器的单线程代码 9 年前 |
|
SMSk · 限制核心用途PyCharm 10 年前 |
![]() |
Gaurang Tandon · 在多核计算机上查找执行时间 11 年前 |