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%