Mapserver/PostGIS Performance Tip

        ผมไปอ่านเจอ TIP สำหรับการ เพิ่มประสิทธฺภาพระบบ สำหรับ Mapserver 5.xx ที่ใช้งานร่วมกับ Spatial Database อย่าง Postgresql+postgis คิดว่าน่าจะเป็นประโยชน์มากๆสำหรับท่านที่ใช้งาน POSTGIS กับ Mapserver อยู่โดยคุณ paul ได้เขียน tip ง่ายๆที่หลายคนมองข้ามไว้ว่า

1. การลดเวลาการหา SRID และ Primary key ของ Map Server ด้วยการ define มันซะ

       ปกติการ config เรามักจะกำหนด data connection ง่ายๆเช่น DATA “the_geom from the_table”  ซึ่งในความเป็นจริงก็สามารถทำงานได้ครับ แต่ mapserver จะต้อง query กับไปถาม database เองทุกครั้งที่เปิดเชื่อมต่อ ดังนั้นเพิ่มลด process ตรงนี้ก็นิยามไว้ซะเลย

         DATA “the_geom from gistable using unique gid using srid=4326”

2. connection pool : กรณีที่ท่านมี Postgis layer หลายๆชั้น สำหรับระบบที่ไม่ได้ใช้ fast-cgi ควรจะใช้ connection pool เพื่อลดเวลาการเชื่อมต่อ โดยสามารถกำหนดให้ mapserver คงการเชื่อมต่อสำหรับ postgis layer ต่างๆได้โดยสร้าง config ใน mapfile ดังนี้

        PROCESSING “CLOSE_CONNECTION=DEFER”

        เทคนิคง่ายๆที่ช่วยเพิ่มประสิทธิภาพการทำงานของระบบได้มากเลยทีเดียว ผมลองเทียบการ config แบบธรรมดากับแบบของ คุณ paul ramsey โดยลองกับ Postgis layer ประมาณ 20 layer ผลออกมาก็เป็นตามคาดครับเรียกว่าต่างกันแบบทันตาเลยทีเดียว 😀

 

 

Advertisements

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

สร้างเว็บไซต์หรือบล็อกฟรีที่ WordPress.com.

Up ↑

%d bloggers like this: