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 盘上。