Performance

共 105 篇文章。

KSE成为内核选项

• Kernel

今天,John Birrell同学commit了一个不大不小的patchset—-将KSE变为内核选项。具体说来,在-CURRENT上,KSE不再是一个必选项了。

KSE是FreeBSD 5.0-CURRENT时的一个非常重要的技术探索,它是对由华盛顿大学THOMAS E. ANDERSON等人提出的调度器激活概念的一个实现。

对于M:N线程来说,调度器激活是一项十分先进的概念。在这个模型中,内核并不需要了解用户态线程的细节,而用户态线程也并不是由内核直接调度,相反,这些线程被绑定到一系列"调度实体"上,内核能够看到这些调度实体,并在上下文切换时激活用户态的线程调度器。由于减少了内核-用户态的上下文切换操作,因此理论上这一模型能够获得更好的性能。

阅读全文… ( 本文约 1079 字,阅读大致需要 3 分钟 )

ULE returned to its "experimental" state

• Kernel

An internal discussion happened in -developers@ has finally decided that we put ULE scheduler back to the “experimental” state, in order to reduce the number of reports about crashes and other bad things for it.

Currently the fact that ULE is not being actively maintained is the cause of this change. We hope that we can find someone who has interest on it. Additionally, it is worthy to have a look at David Xu’s new “CORE” scheduler (a ULE fork, using Linux’s algorithm).

阅读全文… ( 本文约 103 字,阅读大致需要 1 分钟 )

学生证惊魂记

• Life

因为明天要去学校交费,加上今天早上起的比平时早(7:00),所以开始找相关资料,结果发现没有在预期的地方出现……

找了整整90分钟之后,决定放弃,直接去公司。路上想了很久,也琢磨了很多UI设计的问题,比如如何能够让界面更straightforward(直截了当?不知道这个词应该如何翻译)一些,等等。

阅读全文… ( 本文约 358 字,阅读大致需要 1 分钟 )

CORE调度器

• Kernel

今天 David Xu commit了他的新调度器(SCHED_CORE),这个调度器基于ULE调度器,但改变了一系列算法。打算抽时间好好看一看代码。

参与评论

谁是idiot?

• Kernel

有人在有人问是不是要实现类似FreeBSD的ZERO_COPY_SOCKET的时候怒啦,说啦:“I claim that Mach people (and apparently FreeBSD) are incompetent idiots. Playing games with VM is bad. memory copies are also bad, but quite frankly, memory copies often have less downside than VM games, and bigger caches will only continue to drive that point home.”

可是:
a) ZERO_COPY_SOCKET 并非默认启用的功能。
b) FreeBSD在7年前就实现了这个功能,某些系统至今连这个选项都没有。
c) FreeBSD的zero_copy manpage明示了其性能影响。

阅读全文… ( 本文约 208 字,阅读大致需要 1 分钟 )

malloc(3)换了!

• Kernel

Jason Evans同学返回FreeBSD的第一件事就是把malloc(3)的实现换掉了。这个完全重写的malloc(3)实现带来了以下功能:

  • 防止CPU之间发生冲突的分配场(arenas)概念。
  • 类似slab allocator的分配机制。
  • 释放-分配时的对象cache机制。

仅manpage和malloc.c的patchset就超过150K,值得一读。

参与评论

我靠!!不带这么玩的……改一个sysctl能让mysql性能提高6倍?!

• Kernel

最近 current 邮件列表讨论的很凶的一个问题是,MySQL很不理性地在每一个I/O操作时都调一次time()。这一操作在FreeBSD上面相当的昂贵(为了保证精度),而Linux采取了许多优化(有些是牺牲精度的)措施,因而性能差距越来越大。

于是有一个人在FreeBSD上做了试验,说改一下默认的时钟能够将性能提高6倍……不带这么玩的,ft……

BTW. clive也测了一下,在他机器上结果是:

阅读全文… ( 本文约 257 字,阅读大致需要 1 分钟 )