ฉันกำลังใช้i3.2xlargeอินสแตนซ์AWS EC2 และเผชิญกับขีดจำกัด 10K IOPS ฉันสงสัยว่าทำไมถึงเป็นเช่นนั้น?

ฉันเขียนบนพื้นที่จัดเก็บอินสแตนซ์ NVMe เท่านั้น ไม่ว่าฉันจะทำอะไร ฉันก็ผ่านขีดจำกัดนั้นไม่ได้ ฉันคิดว่าอินสแตนซ์คลาส I3สามารถไปได้ไกลกว่านั้นหรือไม่

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

มีใครบ้างที่สามารถบรรลุปริมาณงานที่สูงขึ้นด้วยอินสแตนซ์ประเภทนั้น? เหตุใดขีด จำกัด 10K IOPS อะไรคือสาเหตุของมัน? แล้วจะไปเหนือมันได้อย่างไร?

หมายเหตุ: ฉันกำลังเรียกใช้แอปพลิเคชันฐานข้อมูล และทำการร้องขอการอัปเดตจำนวนมาก

answer

คุณแน่ใจ 100% ว่ากำลังเขียนไปยังที่จัดเก็บข้อมูล SSD ในเครื่องหรือไม่

ดูเหมือนว่าคุณอาจใช้โวลุ่ม EBS แทนโดยไม่ได้ตั้งใจขีด จำกัด 10K IOPS จะแนะนำว่า...

วิธีตรวจสอบ:ในAmazon Linux 2บนi3.2xlargeพื้นที่จัดเก็บอินสแตนซ์ NVMe จะเป็น/dev/nvme0n1ในขณะที่ไดรฟ์ข้อมูล EBS เป็น/dev/xvd*. ตรวจสอบอุปกรณ์ที่ติดตั้งในไดเร็กทอรีที่คุณใช้ / การเปรียบเทียบ:

[[email protected] ~]# mount
/dev/xvda1 on / type xfs (rw,noatime,attr2,inode64,noquota)
/dev/xvdba1 on /ebs-storage type ext4 (rw,relatime,data=ordered)
/dev/nvme0n1 on /local-storage type ext4 (rw,relatime,data=ordered)

ที่นี่ฉันได้ติดตั้งไดรฟ์ข้อมูล EBS ที่สองเป็น/ebs-storageและพื้นที่จัดเก็บอินสแตนซ์ NVMe เป็น/local-storage.

โปรดทราบว่าดิสก์ NVMeจะต้องได้รับการฟอร์แมตอย่างชัดเจน( mkfs) และติดตั้งก่อนจึงจะสามารถใช้งานได้! ตามค่าเริ่มต้น อินสแตนซ์จะเริ่มต้นด้วยดิสก์รูทที่ได้รับการสนับสนุนจาก EBS และดิสก์ NVMe ที่รวดเร็วจะไม่ถูกใช้งาน!

หวังว่าจะช่วย :)

หน้านี้ใน AWSบอกว่า i3.2xlarge สามารถทำ IOPS การอ่านแบบสุ่ม 412,500 และ 180,000 เขียน IOPS ในการเปรียบเทียบ i3.16Xlarge สามารถทำ IOPS การอ่านแบบสุ่มได้ 3.3 ล้านครั้ง และ IOPS ในการเขียน 1.4 ล้านครั้ง

มันยังบอกอีกว่า

As you fill the SSD-based instance store volumes for your instance, the number of write IOPS that you can achieve decreases. This is due to the extra work the SSD controller must do to find available space, rewrite existing data, and erase unused space so that it can be rewritten. This process of garbage collection results in internal write amplification to the SSD, expressed as the ratio of SSD write operations to user write operations. This decrease in performance is even larger if the write operations are not in multiples of 4,096 bytes or not aligned to a 4,096-byte boundary. If you write a smaller amount of bytes or bytes that are not aligned, the SSD controller must read the surrounding data and store the result in a new location. This pattern results in significantly increased write amplification, increased latency, and dramatically reduced I/O performance.

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

มิฉะนั้น คำแนะนำในการติดต่อฝ่ายสนับสนุนของ AWS ก็เป็นคำแนะนำที่ดี การสนับสนุนของพวกเขายอดเยี่ยมมาก คุณต้องจ่ายเงินสำหรับการสนับสนุน แม้ว่าระดับนักพัฒนาจะไม่แพงขนาดนั้น

บน AWS อัตรา IOPS ถูก จำกัดต่อปริมาณ

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