Amazon RDS: คำขอ IO คืออะไร


9

ฉันมีอินสแตนซ์ RDS ที่ทำให้ฉันต้องเสียเงินเป็นจำนวนมาก จากกิจกรรมบัญชีของฉันใน amazon ฉันเห็นว่าอินสแตนซ์มีคำขอประมาณ 800,000,000 IO ในช่วง 7 วันที่ผ่านมา

แอพของฉันได้รับการเยี่ยมชมที่ไม่ซ้ำกันประมาณ 6,000 ครั้งต่อวันและมันก็ไม่ได้ทำให้การเชื่อมต่อฐานข้อมูลจำนวนมาก

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

ฉันขอขอบคุณความคิดของคุณ


คุณพบทางออกในกรณีของคุณหรือไม่?
คลิกโหวต

คำตอบ:


6

Ah, Amazon Web Services หนึ่งใน moneysinks ที่ใหญ่ที่สุดที่มีอยู่ ดีมาก แต่ไม่ถูกเสมอไป จริงๆแล้วแทบไม่เคยถูกและยากที่จะประเมินค่าใช้จ่ายเสมอ

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

คุณสามารถประเมินคำขอ IO ที่คุณกำลังทำโดยดูที่ iostat

800,000,000 IOrequests ใน 7 วัน .. นั่นคือ ~ = 1300 IOPS ว้าว. นั่นคือประสิทธิภาพที่ชั่วร้าย

ตัวอย่างเช่นฐานข้อมูลเว็บไซต์ขนาดกลางอาจมีขนาด 100 GB และคาดว่าจะเฉลี่ย 100 I / O ต่อวินาทีตลอดหนึ่งเดือน สิ่งนี้จะแปลเป็น $ 10 ต่อเดือนในค่าใช้จ่ายในการจัดเก็บ (100 GB x $ 0.10 / เดือน) และประมาณ $ 26 ต่อเดือนในค่าใช้จ่ายคำขอ (~ 2.6 ล้านวินาที / เดือน x 100 I / O ต่อวินาที * $ 0.10 ต่อล้าน I / O)

จากhttp://aws.amazon.com/ebs/ประมาณ 90% ของวิธีลงหน้า

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

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


3
เมื่อฉันทดลองใช้บริการ SimpleDB ของ AWS ครั้งแรกซึ่งเป็นอะไรที่เหมือนกับ MongoDB ฉันก็ต้องเสียเงิน $ 50 ในช่วงบ่าย มันสะดวก แต่แทบไม่เคยถูกเลย
Tom O'Connor

ฉันเดาว่า EBS ไม่สามารถเหตุผลที่ฉันเห็นค่าใช้จ่ายนี้ในใบเรียกเก็บเงินของฉันอีกต่อไป "I / O รวมอยู่ในราคาของวอลุ่ม (จากหน้าการกำหนดราคา )
hayd

เฮ้อมันกลับกลายเป็นว่ามันยังคงมีอยู่ในรุ่นก่อนหน้า !
hayd

6

ฉันมีอินสแตนซ์ RDS ที่ทำให้ฉันต้องเสียเงินเป็นจำนวนมาก

"บริการคลาวด์" ไม่ได้หมายความว่าสิ่งของจะต้องเสียค่าใช้จ่าย โดยทั่วไปคำขอ I / O คือสิ่งใด (เช่นฐานข้อมูลหรือหน้าดัชนี) ที่จำเป็นต้องดึงข้อมูลจากดิสก์ หากคุณมีฐานข้อมูลขนาดใหญ่และแบบสอบถามโดยใช้การสแกนแบบเต็มตารางสิ่งนี้ไม่น่าแปลกใจเลย คุณอาจพิจารณาการค้นหาโดยใช้คอลัมน์ที่ไม่ได้จัดทำดัชนีสำหรับการกรองโดยการเปิดใช้งานตัวเลือกในการบันทึกการสืบค้นที่ "ไม่ได้จัดทำ" ลงในล็อกช้า MySQLและเพิ่มดัชนีสำหรับคอลัมน์ที่เหมาะสม เนื่องจากคุณไม่มีตัวเลือกในการแก้ไขไฟล์กำหนดค่าโดยตรงให้ใช้การกำหนดค่ากลุ่มพารามิเตอร์ RDSเพื่อตั้งค่าlog-queries-not-using-indexesและสอบถามmysql.slow_logตารางสำหรับรายการบันทึก

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


5
มันเป็นสิ่งที่น่าอัศจรรย์ที่มนุษย์เราสามารถทำให้คอมพิวเตอร์ทำงานโดยไม่ได้ตั้งใจจำนวนมากได้อย่างง่ายดาย คุณต้องย้อนกลับไปและวัดเพื่อให้แน่ใจว่าคุณไม่ได้บังคับให้เครื่องทำสิ่งที่โง่อย่างน่าประหลาด (ผมเคยปรับปรุงประสิทธิภาพการทำงานของระบบจริงของโลกนำไปใช้งานได้ถึง 40% ในเวลาน้อยกว่านาทีสิบ (ไม่นับเวลาในการตั้งค่าการสร้างประวัติ) โดยการเพิ่มหนึ่ง&ในรหัสของมันเห็นได้ชัดว่าไม่มีใครเคย profiled มัน..)
David Schwartz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.