Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

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

$
0
0

เนื่องจากพบว่าการนำ 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 ครั้ง เพื่อให้ได้ขอบเขตของการทำงานที่ชัดเจนขึ้น ได้ผลที่น่าสนใจดังนี้

การติดตั้ง 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 1997

Trending Articles