Quantcast
Viewing all articles
Browse latest Browse all 2067

บันทึกผลการทดสอบประสิทธิภาพของ Docker ไว้นิดหน่อย

Image may be NSFW.
Clik here to view.

Image may be NSFW.
Clik here to view.
เนื่องจากพบว่าการนำ Docker และ Docker Swarm ไปใช้งานนั้น มักจะมีปัญหาเรื่องของ performance ยิ่ง Docker Swarm ยิ่งมีปัญหาเรื่องของ network ที่ช้าอีก ดังนั้นจึงทำการทดสอบ performance แบบง่าย ๆ ไว้นิดหน่อย ซึ่งทำให้เห็นและเข้าใจปัญหามากขึ้น

รายละเอียดของการทดสอบ

  • ทดสอบบน Digital Ocean
  • CPU Intel(R) Xeon(R) CPU E5-2630L v2 @ 2.40GHz
  • Memory 2G
  • OS Ubuntu 16
  • Nginx 1.13.6
  • Docker 17.09.0-ce
  • WRK

การทดสอบใช้ WRK

ยิ่งผ่าน host เท่านั้น เป็นเวลา 20 วินาที (ยิงนานเหนื่อย) [code] $wrk -t5 -c400 -d20s http://localhost [/code]

การทดสอบแบ่งออกเป็นกลุ่มได้ดังนี้

  • ติดตั้ง nginx บนเครื่อง host โดยตรง
  • ติดตั้ง nginx ด้วย Docker ซึ่งใช้ network ดังนี้ bridge, host และ Cailco
  • ติดตั้ง nginx เป็น service ด้วย Docker Swarm
ทำการทดสอบอย่างละ 5 ครั้ง เพื่อให้ได้ขอบเขตของการทำงานที่ชัดเจนขึ้น ได้ผลที่น่าสนใจดังนี้ Image may be NSFW.
Clik here to view.

การติดตั้ง nginx บน host โดยตรงผ่าน apt-get เลย

มีประสิทธิภาพสูงมาก ๆ คือ 10K request ต่อวินาที สิ่งที่ลืมจดมาคือ min/max ของ response time !! ต่อมาทำการทดสอบผ่าน docker ด้วย network default คือ bridge ผลการทำงานตกลงมากอย่างน่าใจหายไปอยู๋มรา 5-6 K request ต่อวินาที แต่เมื่อเปลี่ยนมาใช้ network host ก็วิ่งขึ้นมาสูงถึง 7-9 K request ต่อวินาที แต่ตัวที่น่าสนใจว่าคือ Docker Swarm พบว่าเมื่อสร้าง service ขึ้นมามี replica = 1 ใน Swarm มีเพียงเครื่องเดียวเท่านั้น แน่นอนว่าใช้ overlay network นั่นเอง ได้ผลการทดสอบที่น้อยมาก ๆ คือ 3-4 K request ต่อวินาที เท่านั้น แต่เมื่อทำการเพิ่มค่า replica เป็น 2, 3 และ 4 ตามลำดับ ได้ผลการทดสอบที่สูงขึ้นเรื่อย ๆ จนไปถึง 7-9 K request ต่อวินาที ซึ่งทำให้เห็นภาพชัดเจนว่า ถ้า Docker Swarm มี service ที่ replica เป็น 1 ต้องเสีย overhead เรื่องของ network ไปแน่นอน แต่เมื่อเพิ่ม replica ขึ้นมา พบว่าการทำงานใกล้เคียงกับการติดตั้งปกติมาก แต่สิ่งที่ได้กลับมาเพิ่มคือ High Avaiability นั่นเอง
นี่ยังเป็นเพียงการทดสอบแบบง่าย ๆ ที่สำคัญเป็นแบบ static อีกด้วย แต่น่าจะทำให้เห็นอะไรมากพอสมควร ยังมีเรื่องอื่น ๆ อีก เช่นการพูดคุยกันระหว่าง container เป็นต้น
ไปอ่านมามีคำแนะนำให้ใช้ network อื่น ๆ อีก ไม่ว่าจะเป็น Cailco, Weave เป็นต้น

Viewing all articles
Browse latest Browse all 2067

Trending Articles