AWS S3 — Performance Optimization

Mart — Tanathip Viriya
1 min readJun 7, 2020

S3 ถูกออกแบบมาให้รองรับ high request rates โดยมี Limit อยู่ที่ requests/second

  • >3,500 PUT/LIST/DELETE
  • < 5,500 GET

แต่ถ้ามากกว่านี้เราเรียกว่า GET-Intensive Workloads ให้ใช้ CloudFront เพื่อให้ประสิทธิภาพที่ดีที่สุด แต่ๆ ถ้าเราจะ Performance Optimization ที่ไม่เกิน limit ดังข้างบน สิ่งที่เราต้องทําคือ หรือพวก Mixed-Workloads

  1. ทํา Sequential naming pattern ก่อนเข้าไปที่ Object เช่น ใช้ timestamp ก่อนเป็นที่ชื่อ file object
  2. ตั้ง Random Prefix สําหรับ Key names เพื่อลดการอ่าน object ทั้งหมดในนั้นทีเดียวให้อ่านทีละไฟล์นั้นเอง ไม่อย่างนั้นจะเกิด I/O issues ได้ (โดยตัวอย่างข้างนี้เป็นเรื่องของก่อนปี 2018 หมายถึงหลังจากนั้นแล้ว AWS S3 ได้ทําการ update ว่าไม่ต้อนใจเรื่องของ Naming Pattern โดยการ Random Prefix แล้ว เราสามารถใช้ sequential naming pattern ได้เลยแบบข้อ 1)

ดังตัวอย่างข้างล่างนี้

ถ้าลองมองดีๆในส่วนของ not optimal column นะ จะเห็นว่าเวลาที่เราเรียกไปที่ bucket นั้นๆ มันจะไปทําการหาไฟล์ทั้งหมด ภายใต้ 2020–03–04–08–00–00 เลย โดยไม่ได้เข้าไปที่ระดับ partition ของไฟล์นั้นจริงๆ ซึ่งจะทําให้เกิด I/O issues ได้ ถ้ามี object เยอะมากๆๆๆๆ

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response