pgtune เป็น python script ใช้ tune ค่า PostgreSQL Configuration เดิม ให้เหมาะสมตาม hardware machine ที่ติดตั้งอยู่ (หลัก ๆ ก็ปรับ parameters ตาม RAM ที่อยู่บนเครื่องนั้น) โดย script pgtune นี้ สามารถได้รันบน OS Windows, OS X , Unix และ Linux ต่าง ๆ ทางผมได้ทดลองนำมาปรับค่า postgresql.conf บนเครื่อง Windows, Debian และ CentOS เท่านั้น

pgtune download ได้ที่นี้ http://pgfoundry.org/projects/pgtune

คำสั่งการใช้งาน pgtune

ซึ่งหากเป็นเครื่อง Windows หรือบน Unix / Linux ที่ไม่มีการ set ค่า $PGDATA ไว้ก็ให้อ้าง Full PATH ไปเลย

ดูคำสั่งเพิ่มเติม

คำสั่งการใช้งาน pgtune บน Windows

pgtune เป็น python script ดังนั้นต้องมีการติดตั้ง python สำหรับแปลภาษาก่อนจึงสามารถใช้งานได้
โดยอาจสร้าง bat file ขึ้นมาเพื่อทำงานง่าย ๆ ขึ้นตาม code ด้านล่าง

หลังจากรันแล้ว พบว่ามี configurations ที่เพิ่มเติมมาดังนี้

tuned postgresql.conf

ปรับค่า Kernel Parameters

กรณีเป็นพวก Unix / Linux
จำเป็นต้องเพิ่มค่า shmmax , shmall ให้มากกว่า shared_buffers ในไฟล์ postgresql.conf
แต่ต้องไม่เกิน Maximum Memory ที่เรามีจริง ๆ ปรับให้พอดี
ใน Linux ไปแก้ค่าในไฟล์/etc/sysctl.conf ตามตัวอย่างด้านล่างนี้ (ก่อน restart service)

จากนั้นก็ให้ทำการ copy postgresql.conf เก็บไว้ก่อน กันเหนียว / แล้วดำเนินการ copy postgresql.conf.pgtune เป็น postgresql.conf / แล้ว restart service PostgreSQL เพื่อ take effect คร่าว ๆ ก็ประมาณนี้ครับ

ที่กล่าวมาข้างบนนั้น เป็นการ tune เบื้องต้นสำหรับการปรับค่า Parameters ของ PostgreSQL ส่วนหากต้องการให้ได้ performance ดีกว่านี้คงเป็นเรื่องของการ design hardware ทั้ง CPU/RAM/RAID/Disk รวมถึงการคำนึงถึง workload การกระจายโหลด เป็นต้น (PostgreSQL Tuner Script)

สำหรับ web admin นั้นทาง PostgreSQL ก็มี phpPgAdmin ซึ่งสามารถ download ได้ที่นี้ http://phppgadmin.sourceforge.net/

 

pgtune – PostgreSQL Performance Tuning