การทดสอบความสามารถในการปรับขนาดของกระบวนงานที่เก็บไว้


14

ฉันมีแอปพลิเคชันอีเมลที่จะถูกส่งต่อไปยัง UI จำนวนข้อความใหม่สำหรับผู้ใช้ที่ระบุในการโหลดหน้าเว็บแต่ละหน้า ฉันมีหลายรูปแบบของสิ่งที่ฉันกำลังทดสอบในระดับ DB แต่ทั้งหมดจะถูกสรุปโดยการเรียก proc ที่เก็บไว้

ฉันพยายามกดฐานข้อมูลเพื่อดูว่าจุดแตกหัก (# ของคำขอต่อวินาที) จะเป็นอย่างไร

โดยสรุปฉันมีตารางเช่น userId นี้ newMsgCount พร้อมกับดัชนีคลัสเตอร์บน userId SQL ควรสามารถตอบสนองต่อเซิร์ฟเวอร์เหล่านี้หลายร้อยหรือหลายพันต่อวินาที ฉันคิดว่าคนเกียจคร้านเป็นแอป. NET ของฉัน

ฉันจะทำให้การทดสอบนี้เป็นผลการทดสอบที่ดีโดยใช้ประสิทธิภาพของ SQL ได้อย่างไร

มีเครื่องมือสำหรับสิ่งนี้ที่ฉันสามารถให้ชื่อ proc ที่เก็บไว้และ param เพื่อให้ pund DB ของฉันหรือไม่

ฉันต้องการดูว่า DB สามารถส่งคืนนาทีได้หรือไม่ จาก 250 คำตอบต่อวินาที


1
เป็นคำถามที่ดีมาก ฉันจะขยายให้กว้างขึ้นเล็กน้อยและถามว่า: คุณโหลดทดสอบฐานข้อมูลของคุณได้อย่างไร
Nick Chammas

คำตอบ:


11

SQLQueryStress เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการทดสอบการทำงานพร้อมกันขนาดเล็ก แต่มันก็ไม่ได้ขึ้นอยู่กับหน้าที่ของการทดสอบโหลด ชุดเครื่องมือที่น่าแปลกใจที่รู้จักกันเล็ก ๆ น้อย ๆ ที่สามารถใช้ได้ฟรีจากไมโครซอฟท์ที่สามารถรับมือกับสถานการณ์ส่วนใหญ่ความเครียด SQL Server ทดสอบที่RML ยูทิลิตี้

สรุปคร่าวๆของเครื่องมือ:

  • ReadTraceแปลงการติดตาม Profiler จากไฟล์. trc เป็น. rml (Replay Markup Language)
  • OStressใช้เพื่อเล่นซ้ำไฟล์. rml และ. sql กับเซิร์ฟเวอร์
  • ปลาวาฬเพชรฆาต (Agent Replay Control Agent) ประสานการเล่นซ้ำผ่านอินสแตนซ์แบบกระจายของ OStress
  • ผู้สื่อข่าวให้รายงานการวิเคราะห์ประสิทธิภาพ

มีบทความเริ่มต้นที่ยอดเยี่ยมอย่างรวดเร็วจากทีม SQLCat ซึ่งรวมถึงฐานข้อมูลตัวอย่างและปริมาณงานประสิทธิภาพที่แม่นยำสำหรับ Microsoft SQL Server โดยใช้ RML Utilities 9.0

คุณมีตัวเลือกของกิจกรรมการทำโปรไฟล์สำหรับการเล่นซ้ำหรืออาจจะเหมาะสมกว่าในสถานการณ์ของคุณด้วยการบีบชุดสคริปต์. sql ที่คุณจะเล่นซ้ำผ่าน OStress และ ORCA

เครื่องมือที่ยอดเยี่ยมสำหรับการทดสอบโหลดและตรวจสอบปัญหาด้านประสิทธิภาพ


6

เครื่องมือหนึ่งที่คุณสามารถใช้เป็นSQLQueryStress สำหรับการเริ่มต้นอย่างรวดเร็วให้: ขั้นตอนการจัดเก็บซ้ำและจำนวนเธรด จากนั้นเริ่มการทดสอบความเครียด ตัวชี้วัดเช่น CPU วินาทีการอ่านเชิงตรรกะ ฯลฯ จะปรากฏขึ้น


4

ดูเหมือนคุณเป็นผู้พัฒนา. NET วิธีหนึ่งคือการเขียนแอปพลิเคชันขนาดเล็กที่ใช้มัลติเธรดและมีจำนวน Hit ที่เกิดขึ้นพร้อมกันไปยังฐานข้อมูลและกระบวนงานที่เก็บไว้ เรียกใช้การติดตามขณะนี้เกิดขึ้น

เขียนรหัสแอปพลิเคชันเพื่อเพิ่มจำนวนเธรดที่เกิดขึ้นพร้อมกันในช่วงเวลาที่ระบุถ้าคุณต้องการเพิ่มภาระบน SQL Server โดยอัตโนมัติ

นั่นคือวิธีที่ฉันจะไปเกี่ยวกับเรื่องนี้


ทำไมคุณไม่เขียนแอพนี้โดยใช้ประโยชน์จากโครงการโอเพ่นซอร์สของฉันBenchmark.NETและใช้การเปรียบเทียบแบบขนาน?
Andrei Rînea
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.