秋梦无痕

一场秋雨无梦痕,春夜清风冻煞人。冬来冷水寒似铁,夏至京北蟑满城。

Avatar

Flickr的DB服务器配置

学习了一下Federation at Flickr: Doing Billions of Queries Per Day
• Swapiness set to 0
• In RHEL-4 (i.e. 2.6 Linux Kernel) run DEADLINE I/O scheduler
• Use RAID-10
• Use Battery Back cache
• Use 64-bit
• Use Memory lots of it, but leave enough for the OS to spawn many threads
• Tune Queries

from: http://www.dbanotes.net/arch/flickr_db_swap.html
把Swappiness设置为 0,可以通过如下操作实现:

echo 0 > /proc/sys/vm/swappiness


但个别情况下这样也可能没起作用,因为实际上对 Swap 的调用是由如下的公式计算得到的:

swap_tendency = mapped_ratio/2 + distress + vm_swappiness;

这是个防御性的措施。Linux Kernel 2.6(某些版本)有些诡异行为,当有大量物理内存空闲的时候,Linux仍(或许)会傻乎乎的调用Swap空间,这导致有的时候系统性能很差。有人建议如果是 INNODB 的引擎的话,可以用O_DIRECT方式强制直接调用物理内存。但似乎副作用很大(存疑)。
如果关闭 Swap (swapoff -a)的话,又会遇到Out of Memory的问题。
还有人用的方式是把 Swap 建立到 RAM 盘上。