Resource Governor แนวคิดการจัดการทรัพยากรใน SQL Server 2014

      Resource Governor เป็นแนวคิดใน SQL Server ซึ่งมีมาให้ใช้ตั้งแต่ SQL Server 2008 โดยมีความสามารถในการจัดการ CPU และ Memory ให้พอเหมาะกับการใช้งานของแต่ละฐานข้อมูลได้ แต่ใน SQL Server 2014 ได้มีเพิ่มเติมการจัดการ I/O เพิ่มเข้ามาทำให้ผู้ดูแลสามารถปรับเปลี่ยนการใช้งานได้

      หากจะว่าไปแล้วในการ Tuning ฐานข้อมูลนั้นส่วนใหญ่จะเน้นการทำงานไปที่ CPU และ Memory เป็นส่วนใหญ่ แต่อีกสิ่งหนึ่งที่สามารถปรับแต่งให้ประสิทธิภาพในการทำงานของฐานข้อมูลดีขึ้นได้ ก็คือ I/O นี่เอง ซึ่งทำให้ SQL Server 2014 มีคุณสมบัติในการจัดการทรัพยากรที่หลากหลายและครบถ้วนมากขึ้น

ในการจัดการ Resource Governor นั้น มีสิ่งสำคัญที่เราควรรู้ 3 สิ่ง ดังนี้

  • Resource Pool หลังจากมีการติดตั้ง SQL Server เสร็จสิ้น ระบบจะสร้าง Resource Pool ตั้งต้นขึ้น 2 ตัว คือ internal และ default ไว้คอยสนับสนุนทรัพยากรที่ผู้ใช้กำหนด ซึ่งผู้ดูแลสามารถสร้าง Resource Pool ขึ้นมาใหม่ได้
  • Workload Group จะมีความสัมพันธ์กับ Resource pool กลุ่มภาระงานแต่ละกลุ่มจะถูกกำหนด Resource Pool ให้ใช้งานได้
  • Classification คือ การจำแนกประเภทการร้องขอที่เข้ามาในระบบให้อยู่ใน Workload Group ที่ได้กำหนดไว้ และเหมาะสมตามการใช้งาน

โดยสรุปการทำงานตามแผนผัง ดังนี้

IC122094

      จากแผนผังจะเห็นว่ามีการจำแนกการติดต่อที่ส่งเข้ามาโดยผ่านเงื่อนไขที่ถูกสร้างไว้ภายใน Classification Function ให้เข้าไปยัง Workload Group ที่กำหนดไว้ ซึ่งในแต่ละ Workload Group ก็จะมี Pool ที่จำกัดทรัพยากรไว้เรียบร้อยแล้ว หากเรารู้ว่าการทำงานของกลุ่มไหนมีความต้องการมากกว่าก็สามารถแบ่งทรัพยากรไปให้ใช้งานได้มากกว่า โดยไม่ต้องเสียทรัพยากรไปกับกลุ่มการทำงานที่มีความสำคัญน้อยกว่า ทำให้ประสิทธิภาพในการทำงานเพิ่มมากขึ้น

 

ตัวอย่างการจัดการทรัพยากรใน Resource Pool

USE master; 
GO
CREATE RESOURCE POOL TestFixIOPool WITH
(
       MAX_IOPS_PER_VOLUME = 30,
       MIN_IOPS_PER_VOLUME = 1
	-- MIN_CPU_PERCENT=0,
	-- MAX_CPU_PERCENT=30,
	-- MIN_MEMORY_PERCENT=0,
	-- MAX_MEMORY_PERCENT=30
);
GO

 

อ้างอิง : https://technet.microsoft.com/en-us/library/bb934084%28v=sql.105%29.aspx