Asked Aug 2nd, 6:52 PM 148 0 3
  • 148 0 3
+1

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

Share
  • 148 0 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 ANSWERS


Answered Aug 5th, 2:35 AM
+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.

Share
Đào An @langtudatinh117
Aug 7th, 4:37 PM

Ứ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 à ??

0
| Reply
Share
Friday, 2:50 AM
Answered Aug 8th, 2:43 AM
+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/

Share
Đào An @langtudatinh117
Aug 8th, 5:34 PM

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

0
| Reply
Share
Friday, 2:51 AM

@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

+1
| Reply
Share
Đào An @langtudatinh117
Friday, 6:02 AM

@ninhvh Cám ơn bạn 😄

0
| Reply
Share
Answered Aug 7th, 10:38 AM
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.

Share
Đào An @langtudatinh117
Aug 7th, 4:35 PM

: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

0
| Reply
Share
Minhmoo @minhmoo
Aug 8th, 6:38 AM

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.

0
| Reply
Share
Đào An @langtudatinh117
Aug 8th, 5:37 PM

@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.

0
| Reply
Share