พอดีมาแก้ปัญหาเกี่ยวกับ Out of Memory ของ MySQL  ที่รันบนลินุกซ์ Fedora Core 2 นะครับ ซึ่งดูลอกไฟล์ที่ /var/log/message ได้ผลดังนี้ครับ

Out of Memory: Killed process 10085 (mysqld).
oom-killer: gfp_mask=0xd0
Mem-info:
DMA per-cpu:
cpu 0 hot: low 2, high 6, batch 1
cpu 0 cold: low 0, high 2, batch 1
cpu 1 hot: low 2, high 6, batch 1
cpu 1 cold: low 0, high 2, batch 1
Normal per-cpu:
cpu 0 hot: low 32, high 96, batch 16
cpu 0 cold: low 0, high 32, batch 16
cpu 1 hot: low 32, high 96, batch 16
cpu 1 cold: low 0, high 32, batch 16
HighMem per-cpu:
cpu 0 hot: low 32, high 96, batch 16
cpu 0 cold: low 0, high 32, batch 16
cpu 1 hot: low 32, high 96, batch 16
cpu 1 cold: low 0, high 32, batch 16

ซึ่งเครื่องนี้มีแรมขนาด 2 GB กับ Swap อีก 4 GB ( 2 GB (Partition) + 2 GB (File) ) ครับ ก่อนหน้านี้แรมหมดเกลี้ยงเลยนะ

# free -m
             total       used       free     shared    buffers     cached
Mem:          2026        999       1027          0          8        612
-/+ buffers/cache:        377       1648
Swap:         3992          0       3991

สำหรับความเร็วของซีพียูนะครับ ดูจากคำสั่ง  cat /proc/cpuinfo

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Xeon(TM) CPU 3.06GHz
stepping        : 9
cpu MHz         : 3061.967
cache size      : 512 KB
physical id     : 0
siblings        : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr
bogomips        : 6062.08

สำหรับวิธีการแก้ปัญหาของผมนะ ก็ปรับแต่งค่าพารามิเตอร์ต่างๆ ที่อยู่ในไฟล์ /etc/my.cnf นะครับ โดยทีแรกสุดนั้น ค่าต่างๆ เป็นค่าโดยปริยายของระบบ ซึ่งทำให้มีการใช้งานที่หนักเกินไป ผมก็เลยลองเปลี่ยนเป็นค่าอื่นๆ ตามเอกสารของ mysql ดูครับ ซึ่งจะมีตัวอย่างไฟล์อยู่ที่ /usr/share/doc/mysql-*/my-*.cnf ครับ ซึ่ง my-*.cnf จะมีทั้ง my-huge.cnf , my-large.cnf , my-medium.cnf , my-small.cnf ซึ่งจะมีโหลดของการทำงานที่แตกต่างกันครับ ผมลองปรับค่าเดิมที่มีอยู่ ให้เป็นแบบ my-medium.cnf ก็ปรากฏว่า อาการดีขึ้นมาครับ จากเดิมที่ใช้ cpu 99.9% มาเป็น ไม่เกิน 60% แล้วครับ