รับและนำการทดสอบประสิทธิภาพมาใช้กับ Google BigTables (และฐานข้อมูลรวมอื่น ๆ )


17

มีวิธีใดที่มีประสิทธิภาพในการทดสอบประสิทธิภาพการทำงานของโปรแกรมในการดำเนินการกับฐานข้อมูลโดยเฉพาะในสภาพแวดล้อมที่ตัวฐานข้อมูลเองไม่มีเครื่องมือเฉพาะ?

ตัวอย่างเช่นใน Google App Engine การโหลดหน้าเว็บทั้งหมดจะถูกประเมินเป็นการดำเนินการเดียวซึ่งอาจรวมถึงการดำเนินการฐานข้อมูลเฉพาะ ปัญหานี้ยังมีอยู่ใน SQLite และฐานข้อมูลรวมอื่น ๆ เนื่องจากเป็นการยากที่จะสรุปบทคัดย่อการเลือกและการแทรก (เทียบเท่า) ที่จำเป็นต้องทำการทดสอบจึงมีเครื่องมือฐานข้อมูลที่แนะนำให้ทำการวินิจฉัยอย่างละเอียดมากขึ้นเกี่ยวกับคำถามประเภทนี้หรือไม่?


คุณมีการเข้าถึงฐานข้อมูลที่เป็นปัญหาโดยตรงหรือไม่
Stingervz

ใช่ฉันเป็นคนเขียนแอพ และในขณะที่ประสิทธิภาพของแอพเป็นคำถามที่แตกต่างกันฉันได้รับความนิยมอย่างมากในข้อความค้นหาที่น่ารังเกียจที่ฉันเขียน
Brian Ballsun-Stanton

บางครั้งดวงตาคู่หนึ่งโหลก็เป็นการวินิจฉัยที่ดีกว่าตัววิเคราะห์
คิวรี

@Brian ฉันคิดว่าคุณน่าจะใช้ Stackoverflow กับคำถามประเภทนี้ได้ดีกว่าเพราะมันเป็นคำถามการเขียนโปรแกรมมากกว่า DBA
IAMIC

@IanC Drat ฉันพยายามที่จะได้รับการหนุนที่ยิ่งใหญ่มากกว่าการแสดงโดยรวม แต่ฉันจะลบถ้าคนไม่คิดว่าคำถามเหมาะสม (ฉันยังพยายามที่จะประกันว่าเว็บไซต์นั้นไม่ใช่ oracle / sql-server / mysql ตลอดเวลา)
Brian Ballsun-Stanton

คำตอบ:


1

ดูเหมือนว่าปัญหาของคุณคือคุณกำลังพยายามทดสอบตัวชี้วัดประสิทธิภาพที่ไม่ได้รับการสนับสนุนในฐานข้อมูล สิ่งนี้ทำให้การเปรียบเทียบประสิทธิภาพข้ามระบบเป็นเรื่องยากมากเพราะวิธีการพื้นฐานนั้นแตกต่างกันมาก ฉันไม่คิดว่ามันเป็นไปได้ที่จะทำการเปรียบเทียบแอปเปิ้ลกับแอปเปิ้ลเหมือนกับที่ฉันไม่คิดว่าคุณสามารถทำแอปเปิ้ลกับแอปเปิ้ลเปรียบเทียบวิธีการพิมพ์ประเภท ORDBMS กับวิธีการพิมพ์ RDBMS ความกังวลเกี่ยวกับประสิทธิภาพนั้นแตกต่างกันมากเกินไปและหาก Stonebraker นั้นถูกต้องที่เพิ่มประสิทธิภาพการทดสอบ ORDBMS สำหรับการทดสอบ TPC-C นั้นพลาดจุดนั้นสำหรับระบบที่ห่างกันมากขึ้นมันจะเป็นไปไม่ได้ (ฉันคิดว่าเขาอยู่ที่นั่น แต่มีเพียงฟังก์ชัน ORDBMS ที่เข้ามาเล่นเท่านั้น)

ฉันคิดว่าสิ่งที่คุณต้องซื่อสัตย์คือดูว่าคุณจะใช้ระบบแต่ละระบบอย่างไรและสร้างเครื่องมือวัดประสิทธิภาพตามวิธีที่คุณใช้กับแต่ละระบบ จากนั้นคุณสามารถพูดอย่างน้อยสำหรับเวิร์กโฟลว์นั้นที่การวัดประสิทธิภาพแสดงบางสิ่งที่เฉพาะเจาะจง ฉันไม่เห็นว่าคุณสามารถพูดคุยได้อย่างไร คุณสามารถเรียกใช้งานใน profiler เพิ่มเติมเพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับเวลาที่ใช้ในการทดสอบการทำงานของเอนจิ้นต่างๆ

อย่างไรก็ตามการเปรียบเทียบฐานข้อมูลเป็นเรื่องยากมากที่จะทำให้มีความหมายในสถานการณ์ที่ดีที่สุดและเมื่อคุณเปรียบเทียบระบบที่แตกต่างกัน


0

Appstatsเป็นเครื่องมือสำคัญสำหรับวัดประสิทธิภาพของ App Engine มันจะแสดงเวลาที่ใช้สำหรับแต่ละ RPC รวมถึงที่เก็บข้อมูล, memcache, urlfetch และคำขอจดหมายในแผนภูมิกราฟิก โดยปกติคำขอจะปรากฏเป็น "staircase" โดยที่คำขอแต่ละรายการเริ่มต้นที่จุดที่คำขอก่อนหน้านี้สิ้นสุดลงในบรรทัดถัดไป

หากคุณใช้การร้องขอแบบอะซิงโครนัสขั้นสูงใน ndb คุณจะเห็นการร้องขอเกิดขึ้นแบบขนาน

เครื่องมือนี้ช่วยฉันได้อย่างมากเมื่อฉันเห็นว่าเวลาถูกใช้ไปที่ไหนและจะเพิ่มประสิทธิภาพข้อความค้นหาได้อย่างไร

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