Yêu cầu thg 8 2, 2019 6:52 CH 517 1 3
  • 517 1 3
+1

Performance của app có bị giảm khi dùng docker?

Chia sẻ
  • 517 1 3

M có thử sài docker để chạy 1 app nodejs helloworld thi kết quả như sau, ko dùng docker thì kết quả số request handle đc x3 lần. (M sài cả swarm thêm 3 container cũng thế) Vậy sài docker để làm gì vậy ?

3 CÂU TRẢ LỜI


Đã trả lời thg 8 5, 2019 2:35 SA
+1

Bạn dùng Docker for Mac nên nó chạy trong máy ảo, performance sẽ kém hơn, bạn thử chạy trên Linux xem sao. Có thể share code để mình chạy thử được không, mình sẽ share kết quả với bạn.

Chia sẻ
Avatar Đào An @langtudatinh117
thg 8 7, 2019 4:37 CH

Ứng dụng hello world nodejs thôi bạn, m copy paste phần get started bằng python của docker vào thôi ý. Docker tưởng chạy môi trường nào cũng ok chứ, thế té ra là vẫn ảo hóa à ??

thg 8 16, 2019 2:50 SA
Đã trả lời thg 8 8, 2019 2:43 SA
+1

Nếu chạy trên MacOS thì Docker gặp vấn đề về sync dữ liệu bạn nhé, tốc độ sẽ chậm đi rất nhiều. Vấn đề không nằm ở Docker, mà ở cơ chế mà Docker dùng để sync file thôi. Bạn đọc thêm món này http://docker-sync.io/

Chia sẻ
Avatar Đào An @langtudatinh117
thg 8 8, 2019 5:34 CH

m tưởng build image là nó đóng hết vào container rồi chứ ? sao lại phải sync nữa ~~

thg 8 16, 2019 2:51 SA

@langtudatinh117 Docker cho mac không sử dụng trực tiếp được hệ điều hành của mac bạn ạ, nó cần chạy trong máy ảo. Nhưng vs linux thì docker sử dụng được luôn trên nền hệ điều hành linux -> vs Linux thì performance của docker chạy sẽ ko bị kém hơn nhiều khi chạy application trực tiếp.

Tuy nhiên trong mô hình container của docker, container tạo ra các process độc lập bên trong container, chúng cạnh tranh cả về CPU, RAM, Disk, Network và các loại tài nguyên khác với hệ thống. Quá trình này rất phức tạp, sự thiếu hiệu quả có thể xảy ra ở phần core của docker và hệ điều hành. Theo mình tìm hiểu thì vấn đề lớn nhất của docker là về security, vấn đề phức tạp, mình hiểu cũng ko đc rõ ràng -> ko bàn ở đây.

Còn về performance thì bạn có thể yên tâm, sự chênh lệch là ko nhiều, có bài nghiêm cứu của IBM kiểm tra về performance của docker bạn có thể tìm hiểu ở đây: https://domino.research.ibm.com/library/cyberdig.nsf/papers/0929052195DD819C85257D2300681E7B/$File/rc25482.pdf phần tóm tắt nội dung và so sánh ở đây: https://stackoverflow.com/questions/21889053/what-is-the-runtime-performance-cost-of-a-docker-container

Avatar Đào An @langtudatinh117
thg 8 16, 2019 6:02 SA

@ninhvh Cám ơn bạn 😄

Đã trả lời thg 8 7, 2019 10:38 SA
0

Hiển nhiên là giảm performance rồi, cái gì cũng có giá của nó thôi. Dùng Docker sẽ đỡ đc khâu deploy/setup + config.

Chia sẻ
Avatar Đào An @langtudatinh117
thg 8 7, 2019 4:35 CH

:v chắc làm hệ thông bự chà bá mới dùng quá, chứ setup cho ứng dụng nhỏ cứ shell script là ok rồi

Avatar Minhmoo @minhmoo
thg 8 8, 2019 6:38 SA

Không hẳn, nhỏ cũng vậy, đặc biệt là NodeJS, rất dễ bị conflict nodejs version với dependencies này nọ. Thử tưởng tượng phải deploy lên 1 server có sẵn của client đang chạy 1 ứng dụng dùng NodeJS version củ hơn requirement của App mình sẽ biết...

Có 1 container khi deploy sẽ khỏe hơn nhiều.

Avatar Đào An @langtudatinh117
thg 8 8, 2019 5:37 CH

@minhmoo ukm biết là cũng tiện hơn chút, cơ mà đánh đổi tiện tí tẹo với hiệu năng giảm như kia thì chắc nghỉ chơi ~~. conflict nodejs version thì upgrade tí là xong.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí