เพิ่มประสิทธิภาพ MySQL ด้วย Google Performance Tools เขียนเมื่อ 2014.11.08 โดย

Google Performance Tools (gperftools) เป็นชุดไลบรารี่ที่มีประสิทธิภาพในการจัดการหน่วยความจำ และที่สำคัญ  tcmalloc (Thread Caching Malloc) เป็นไลบรารี่บริหารหน่วยความจำของโปรแกรม

TCMalloc is faster than the glibc 2.3 malloc (available as a separate library called ptmalloc2) and other mallocs that I have tested. ptmalloc2 takes approximately 300 nanoseconds to execute a malloc/free pair on a 2.8 GHz P4 (for small objects). The TCMalloc implementation takes approximately 50 nanoseconds for the same operation pair.

จากโควทข้างบนเคลมว่าประสิทธิภาพเพิ่มขึ้นถึง 6 เท่า

การติดตั้งบน Debian/Ubuntu

apt-get install libtcmalloc-minimal0

การติดตั้งบน RedHat/CentOS/Fedora

yum install -y epel-release
yum install -y gperftools gperftools-libs

การใช้งานในโปรแกรมที่ไม่ได้ทำการคอมไพล์ด้วย tcmalloc เราสามารถบังคับ MySQL ให้เรียกใช้งาน tcmalloc ได้โดยแก้ไข /etc/init.d/mysqld 

บน Debian/Ubuntu

export LD_PRELOAD="/usr/lib/libtcmalloc_minimal.so.0"

บน RedHat/CentOS/Fedora

export LD_PRELOAD="/usr/lib/libtcmalloc.so"
export LD_PRELOAD="/usr/lib64/libtcmalloc.so"

จากนั้นทำการ restart MySQL จากการทดสอบบน Percona 5.5.35 ให้ทำการอ่านแบบสแกนทั้งตาราง ข้อมูล 32,200 ระเบียน ขนาดตาราง 2.7GB บน 

  • Xeon E3-1240v2
  • 4GB ECC Memory
  • 500GB SATA III HDD

บนระบบที่ใช้ glibc malloc แบบเดิมจะใช้เวลาเฉลี่ย 34.9975 วินาที

บนระบบที่ใช้ tcmalloc จะใช้เวลาเฉลี่ย 24.5481 วินาที

ซึ่งคือใช้เวลาลดลงประมาณ 10.45 วินาที หรือเร็วขึ้นประมาณ 29%




คำเตือนคำเตือน เนื้อหาต่างๆ ในบทความ รวมถึงรูปภาพทั้งหมดในบทความนี้ เป็นความเห็นส่วนตัวของผู้เขียนแต่ละคน ซึ่งแต่ละคนได้ทำการลงทะเบียน และเขียนบทความลงใน Modoeye Articles นี้โดยไม่มีค่าธรรมเนียมใดๆ บทความเหล่านี้เป้าหมายเพื่อการศึกษา และความบันเทิงเท่านั้น การนำส่วนหนึ่งส่วนใดของบทความไปใช้งาน ควรทำการอ้างอิงถึงผู้เขียนและแหล่งที่มาด้วย