ฉันจะกำหนดจำนวน IOP ที่ฉันต้องการสำหรับฐานข้อมูล AWS RDS ของฉันได้อย่างไร


14

ฉันกำลังย้ายส่วนหนึ่งของฐานข้อมูล mysql ไปยัง AWS ข้อมูลที่เป็นปัญหาคือการเขียน 99% และแต่ละแถวมีเขตข้อมูล varchar ประมาณ 1k, datetime และ 4 ints

ฉันคาดว่าเราจะต้องแทรกระหว่าง 20-25k บันทึก / ชั่วโมงในช่วงเวลาเร่งด่วน

ฉันใช้ iostat -h ในฐานข้อมูลปัจจุบันและรายงานประมาณ 40 tps

ฉันจะหาประเภทของ IOPS ที่ฉันต้องการได้อย่างไร

คำตอบ:


11

คุณจะต้องทดสอบ

คุณสามารถทำการคำนวณซองจดหมายด้านหลังเพื่อประมาณจำนวน I / Os ต่อส่วนแทรกคูณด้วยจำนวนธุรกรรมต่อวินาทีเพิ่มในห้องบัฟเฟอร์ ฯลฯ แต่มันง่ายกว่ามากที่จะทดสอบ

สิ่งที่ง่ายที่สุดที่จะทำคือจัดสรรการคาดเดาที่ดีที่สุดจากนั้นย้อนกลับและเพิ่มหรือลดลงเพื่อให้ตรงกับที่คุณกำลังทดสอบในโลกแห่งความเป็นจริง นี่คือหนึ่งในความฟุ่มเฟือยของการใช้สภาพแวดล้อมแบบคลาวด์การเปลี่ยนแปลงฮาร์ดแวร์ต่ำในต้นทุนเงินทุนและการเปลี่ยนแปลงดังกล่าวมักจะต้องมีการปรับปรุงการกำหนดค่าเท่านั้น ที่มีปริมาณ EBS คุณก็ไม่สามารถเพิ่มจำนวน IOPS ที่คุณจะต้องไต่ขึ้นขนาดของไดรฟ์ได้เป็นอย่างดี1 คุณสามารถสร้างวอลลุ่มใหม่และคัดลอกข้อมูลได้ตลอดเวลา จะมีการหยุดทำงานบ้าง แต่ถ้าข้อมูลของคุณไม่ใหญ่ก็ไม่ควรมากเพราะเป็นสำเนาดิบ

นี่คือการคาดเดาจำนวนของ I / Os ที่จำเป็น อีกครั้งมันเป็นเพียงการคาดเดาในขณะที่เฉพาะเจาะจงขึ้นอยู่กับจำนวนของดัชนีและว่าการไหลของการจราจรของคุณจะราบรื่นหรือแหลม ที่ 25K tx / ชั่วโมงคุณมี ~ 7 tx / วินาที ขนาดของแต่ละแถวไม่เกี่ยวข้องกันเป็นพิเศษเนื่องจากมีขนาดน้อยกว่า I / O เดียว (4K) การทำธุรกรรมแต่ละครั้งจะทำที่ไหนสักแห่งระหว่าง 1-5 IOP (การแทรกหลักพร้อมการแทรกต้นไม้ดัชนีคู่) ดังนั้นสมมติว่า ~ 35 / s

ฉันว่าเริ่มต้นด้วยขั้นต่ำเปล่าของ 100 IOPS และขยายขนาดหากจำเป็น


1
BTW เป็นผู้ติดตามสิ่งนี้: เราตั้งค่าฐานข้อมูล 300GB และนั่นหมายถึงขั้นต่ำ 1,000 IOPS หลังจากนั้นประมาณ 6 เดือนใช้ชีวิตกับ RDS เราได้รับ 0 เหตุการณ์เนื่องจากปัญหา I / O อาจ overkill แต่ใกล้เคียงกับไฟ & ลืมคุณจะได้รับ
chris

ขึ้นอยู่กับโหลดของคุณ - คุณไม่จำเป็นต้องมี IOP ที่จัดสรรไว้ นอกจากว่าคุณจะต้องการ IOP มากกว่า 2500-3500 ทั้งหมดพื้นที่เก็บข้อมูลมาตรฐานจะทำที่ 300GB (เนื่องจากการเปิด EBS)
Ross

7

ฉันใช้เครื่องมือ iostat ขั้นพื้นฐาน (iostat -h) เพื่อให้เข้าใจว่ามีกี่ไอพส์ที่ฉันใช้อยู่ในปัจจุบัน จากนั้นฉันประเมินว่าฉันจะใช้มากแค่ไหนถ้าฉันมีน้ำหนักน้อยกว่า 4 เท่าและไปกับปริมาณนั้น สำหรับฉันที่ใช้งานได้ถึง 780 IOPS ดังนั้นฉันจึงไปด้วย 800 IOPS


iostat -h มีการรายงานประมาณ 40 tps ดังนั้นที่สอดคล้องกับ 40 iops? นั่นจะตรงกับตัวเลขที่ @sehrope คำนวณ
chris

1
ถูกต้อง.
ทำเครื่องหมาย D

0

ฉันใช้ iostat เพื่อกำหนดปริมาณของ IOPS ที่แอปพลิเคชันของฉันกำลังทำงานอยู่ iostat รายงานสิ่งนี้ว่าเป็น tps KB / t ช่วยให้คุณตรวจสอบว่าจำนวนการถ่ายโอนน้อยกว่าขนาดก้อน 256 KiB ฉันรัน iostat โดยใช้เวลารอหนึ่งวินาทีนั่นคือ iostat -w 1


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