عامل الميناء وقت بدء التشغيل

كيف يمكنني تسريع: docker run و docker exec أوامر?

يستغرق الأمر قيد التشغيل وقت المستخدم 0.02 ثانية ، ووقت النظام 0.02 ثانية (سيكون ذلك جيدا في حالتي) ، ولكن حوالي 0.5 ثانية في الوقت الفعلي لكل منهما (غير مقبول).

على سبيل المثال:

$ time sudo docker run --cap-add SYS_ADMIN -i -t --memory=100000k --memory-swap=100000k -d -w /tmp -v /home/asd:/tmp my_image187d****5037sudo docker run --cap-add SYS_ADMIN -i -t --memory=100000k  -d -w /tmp -v    0,02s user 0,02s system 6% cpu 0,496 total

هل يمكنني بطريقة أو بأخرى تسريع عملية تشغيل الحاويات أو على الأقل فهم لماذا يضيع هذا الوقت?

my_image يتم إنشاؤه من ubuntu والصورة المبنية تأخذ حوالي 800 ميغابايت. ولكن من ما راجعت لا يهم كثيرا-الحد من حجم الصورة إلى 200 ميغابايت لا يغير وقت تنفيذ الأمر أعلاه.

من المرجح أن يتم إنفاق الوقت الزائد في إنشاء مساحات الأسماء وإزالتها. لمعرفة مكان قضاء الوقت ، يمكنك تشغيل الحاوية بطرق مختلفة.

أولا ، القضاء على الأمر سودو. تسجيل الدخول كجذر, sudo -s، وتشغيل الأوامر من هناك.

حاول التالي تقسيم التشغيل إلى خطوات إنشاء وبدء منفصلة. سيتيح لك ذلك معرفة ما إذا كان الوقت قد تم إنفاقه في إنشاء الحاوية أو تشغيلها:

$ time docker create --cap-add SYS_ADMIN -itd \  --memory=100000k --memory-swap=100000k \  -w /tmp -v /home/asd:/tmp my_image$ time docker start -ai $(docker ps -ql)

منذ تشغيل الحاوية الخاصة بك منفصلة ، والنظر في ما إذا كان يمكنك إزالة تخصيص تي ، وإذا كنت بحاجة إلى ستدين تكوين ، عن طريق إزالة -it:

$ time sudo docker run --cap-add SYS_ADMIN -d \  --memory=100000k --memory-swap=100000k \  -w /tmp -v /home/asd:/tmp my_image

بعد ذلك ، يمكنك البدء في النظر في مقدار الوقت الذي يتم إضافته لإنشاء كل من مساحات الأسماء لأشياء مثل الشبكة و بيد عن طريق تعطيلها عن طريق تعيينها إلى مساحة اسم المضيف الموجودة:

$ time sudo docker run --cap-add SYS_ADMIN -itd \  --net=host --pid=host --uts=host \  --memory=100000k --memory-swap=100000k \  -w /tmp -v /home/asd:/tmp my_image

من عامل الميناء ، يمكنك عرض الإجراءات التي يتم تنفيذها مع docker events والتحقق من الطابع الزمني على كل من الإجراءات.

وأخيرا ، نضع في اعتبارنا أن عامل الميناء هو تطبيق العميل/الخادم ، وبعض من الوقت الفعلي قد يكون مأخذ/شبكة الاتصال بين العميل والخادم.

بعد الإجابة @ بمتش، أود أن أقول ‘عامل الميناء إكسيك’ ليست بطيئة على الإطلاق. انها في الغالب الإعداد وتنظيف حاوية.