ডকারের ধারকটির রানটাইম পারফরম্যান্স ব্যয় কত?


511

আমি ডকারের ধারকটির রান-টাইম পারফরম্যান্স ব্যয়টি বিস্তারিতভাবে বুঝতে চাই। আমি নেটওয়ার্কিং সম্পর্কিত তথ্যসূত্র পেয়েছি যা উপায়ে 100 ~ ধীর গতিতে রয়েছে

আমি রান-টাইম ব্যয়ের "নগণ্য" এবং "শূন্যের কাছাকাছি" হওয়া সম্পর্কিত উল্লেখও পেয়েছি তবে এই ব্যয়গুলি কী তা আমি আরও সুনির্দিষ্টভাবে জানতে চাই। আদর্শভাবে আমি জানতে চাই যে ডকার একটি পারফরম্যান্স ব্যয়ের সাথে কী পারফরম্যান্স করছে এবং এমন কোনও জিনিস যা পারফরম্যান্স ব্যয় ছাড়াই বিমূর্ত হয়। নেটওয়ার্কিং, সিপিইউ, মেমরি ইত্যাদি

তদ্ব্যতীত, যদি বিমূর্ত ব্যয় হয় তবে বিমূর্ত ব্যয়টি প্রায় পাওয়ার উপায় আছে কি? উদাহরণস্বরূপ, সম্ভবত আমি সরাসরি কোনও বনাম ভার্চুয়ালি ডকারে একটি ডিস্ক মাউন্ট করতে পারি।



1
@ गोलো রোডেন যে প্রশ্নটি একই রকম তবে ঠিক একই নয়। "নেটওয়ার্কিং একটি অতিরিক্ত স্তরের মধ্য দিয়ে চলেছে" এর মতো কারণ সহ আমি বিলম্বিতা ব্যয়গুলি সন্ধান করছি যেখানে এই প্রশ্নের গ্রহণযোগ্য উত্তরটি ধারক + অ্যাপের ব্যয় পরিমাপ করার বিষয়ে আরও বেশি।
লুক হোরস্টেন

1
ঠিক আছে, ঠিক আছে। আমি আমার ঘনিষ্ঠ ভোট প্রত্যাহার করেছি।
গোলো রোডেন

8
আপনি খুশি যদিও আপনি এটি পোস্ট। আমার সন্ধানে সেই প্রশ্নটি আসেনি। পরিমাপ / মেট্রিক্স নিবন্ধটি দুর্দান্ত উপকারী: blog.docker.io/2013/10/gathering-lxc-docker-containers-metics
লূক হোয়ারস্টেন

1
এটি "লিনাক্স কনটেইনারস - ক্লাউডের জন্য নেক্সটজেন ভার্চুয়ালাইজেশন" শিরোনামের একটি ভাল অধিবেশন, ডকার,
কেভিএম

উত্তর:


449

ফিল্টার এট আল দ্বারা একটি দুর্দান্ত 2014 আইবিএম গবেষণা পত্র " ভার্চুয়াল মেশিন এবং লিনাক্স ধারকগুলির একটি আপডেট পারফরম্যান্স তুলনা "। খালি ধাতু, কেভিএম, এবং ডকারের পাত্রগুলির মধ্যে একটি তুলনা সরবরাহ করে। সাধারণ ফলাফলটি: ডকার দেশীয় পারফরম্যান্সের সাথে প্রায় একই এবং প্রতিটি বিভাগে কেভিএমের চেয়ে দ্রুত।

এর ব্যতিক্রম হ'ল ডকারের নাট - যদি আপনি পোর্ট ম্যাপিং (উদাহরণস্বরূপ docker run -p 8080:8080) ব্যবহার করেন তবে নীচে দেখানো হিসাবে আপনি বিলম্বিত ক্ষেত্রে সামান্য আঘাত আশা করতে পারেন। যাইহোক, আপনি এখন docker run --net=hostএকটি ডকার কন্টেইনার চালু করার সময় হোস্ট নেটওয়ার্ক স্ট্যাক (উদাহরণস্বরূপ ) ব্যবহার করতে পারেন , যা নেটিভ কলামের সাথে একইভাবে সম্পাদন করবে (রেডিস লেটেন্সি ফলাফলগুলি নীচে দেখানো হয়েছে)।

ডকার নাট ওভারহেড

তারা রেডিসের মতো কয়েকটি নির্দিষ্ট পরিষেবাগুলিতে বিলম্বিত পরীক্ষাও চালিয়েছিল। আপনি দেখতে পাচ্ছেন যে 20 টি ক্লায়েন্ট থ্রেড, সর্বোচ্চ বিলম্বিত ওভারহেড ডকার ন্যাট, তারপরে কেভিএম, তারপরে ডকার হোস্ট / নেটিভের মধ্যে মোটামুটি টাই।

ডকার রেডিস লেটেন্সি ওভারহেড

এটি সত্যই দরকারী কাগজ হিসাবে, এখানে কিছু অন্যান্য পরিসংখ্যান রয়েছে। সম্পূর্ণ অ্যাক্সেসের জন্য দয়া করে এটি ডাউনলোড করুন।

ডিস্ক I / O এ একবার দেখে নেওয়া:

ডকার বনাম কেভিএম বনাম নেটিভ আই / ও পারফরম্যান্স

এখন সিপিইউ ওভারহেডের দিকে তাকিয়ে:

ডকার সিপিইউ ওভারহেড

এখন মেমরির কয়েকটি উদাহরণ (বিশদগুলির জন্য কাগজটি পড়ুন, স্মৃতিশক্তি অতিরিক্ত জটিল হতে পারে):

ডকার স্মৃতি তুলনা


20
কাগজে যেমন লাইনপ্যাক নম্বর দেওয়া আছে ... সত্যি বলতে গেলে, আমি তাদের বিশ্বাস করা কঠিন বলে মনে করি (আমি অস্বীকার করি না যে তারা লিনপ্যাকটি যে পরিমাণ নির্গত হয়েছিল তা কিন্তু তারা সত্য নয় যে পরীক্ষাটি সত্যিকার অর্থেই ভাসমান-বিন্দু পারফরম্যান্স ছাড়া আর কিছু পরিমাপ করে নি। সম্পাদিত)। কেভিএম থেকে প্রাপ্ত প্রধান ওভারহেডটি ইউজারস্পেস হার্ডওয়্যার এমুলেশন উপাদানগুলিতে (যা কেবল নন-সিপিইউ হার্ডওয়্যারের ক্ষেত্রে প্রয়োগ হয় ); মেমরি পেজিংয়ের চারপাশে উল্লেখযোগ্য ওভারহেড রয়েছে ... তবে কাঁচা ভাসমান পয়েন্ট? আমি আসলে সেখানে কী চলছিল তা দেখতে চাই - সম্ভবত অতিরিক্ত প্রসঙ্গের সুইচগুলি।
চার্লস ডফি

2
বর্তমান ডকার সিএলআই সিনট্যাক্সের জন্য সংশোধন: --net=host(দুটি ড্যাশ) এবং -p 8080:8080NAT এর জন্য (ছোট কেস 'পি')।
বিকে 0

6
উদ্ধৃত আইবিএম কাগজটি নেটওয়ার্ক আইওতে খুব বেশি মনোযোগী বলে মনে হচ্ছে। এটি প্রসঙ্গের সুইচগুলিকে কখনও সম্বোধন করে না। আমরা এলএক্সসির দিকে নজর দিয়েছি এবং অ-স্বেচ্ছাসেবী প্রসঙ্গের স্যুইচ বৃদ্ধির কারণে দ্রুত অ্যাপ্লিকেশন প্রসেসিংয়ের ফলে এটি ত্যাগ করতে হয়েছিল।
এরিক

3
আমি ফাইল সিস্টেম অপারেশন সম্পর্কেও কৌতূহলী - উদাহরণস্বরূপ, ডিরেক্টরি দেখার জন্য এমন একটি জায়গা যেখানে আমি ওভারহেড দেখতে আশা করি; ব্লক-স্তরটি পড়তে, লিখতে এবং সন্ধান করতে (যা প্রদত্ত চার্টগুলি খুব বেশি ফোকাস করে) তা নয়
চার্লস ডাফি

12
আমি একই শেড রঙের চার্ট পছন্দ করি। এটি পার্থক্য করা এত সহজ
ভিক্টর জোরাস

104

ডকার ভার্চুয়ালাইজেশন নয়, যেমন - পরিবর্তে, এটি বিভিন্ন প্রক্রিয়া নেমস্পেস, ডিভাইস নেমস্পেস ইত্যাদির জন্য কার্নেলের সমর্থনের উপরে একটি বিমূর্ততা; এক নামস্থান না, তাই আসলে তোলে Docker একটি কার্যকারিতা প্রভাব কি আসলে একটি ব্যাপার আছে, আরো ব্যয়বহুল বা অন্য তুলনায় অদক্ষ মজ্জাগতভাবে হয় মধ্যে ঐ নামব্যবধান।


ডকারের পছন্দগুলি কীভাবে এটির ধারকগুলির জন্য নেমস্পেসগুলি কনফিগার করে তার ব্যয় হয় তবে এই খরচগুলি সরাসরি বেনিফিটের সাথে যুক্ত - আপনি এগুলি দিতে পারেন, তবে এটি করার ক্ষেত্রে আপনি যুক্ত বেনিফিটটিও ছেড়ে দিন:

  • স্তরযুক্ত ফাইল সিস্টেমগুলি ব্যয়বহুল - প্রতিটি একের সাথে ব্যয়গুলি ঠিক কীভাবে হয় (এবং ডকার একাধিক ব্যাকেন্ডকে সমর্থন করে) এবং আপনার ব্যবহারের নিদর্শনগুলির সাথে (একাধিক বৃহত ডিরেক্টরিগুলি একত্রিত করা, বা ফাইল সিস্টেমগুলির একটি খুব গভীর সেট মার্জ করা বিশেষত ব্যয়বহুল হবে) তবে তারা আমি মুক্ত নই অন্যদিকে, ডকারের কার্যকারিতা - একটি অনুলিপি-অনুলিপি পদ্ধতিতে অন্য অতিথিদের তৈরি করতে সক্ষম হওয়া এবং স্টোরেজ সুবিধাগুলি একইভাবে জোগানো - এই ব্যয়টি প্রদান করার ক্ষেত্রে যাত্রা করুন a
  • ডিএনএটি স্কেল ব্যয়বহুল হয়ে যায় - তবে আপনাকে আপনার হোস্টের স্বাধীনভাবে আপনার অতিথির নেটওয়ার্কিংটি কনফিগার করতে সক্ষম হওয়ার সুবিধা দেয় এবং কেবলমাত্র তাদের মধ্যে যে বন্দরগুলি চান সেটিই ফরোয়ার্ড করার জন্য একটি সুবিধাজনক ইন্টারফেস থাকে। আপনি এটি একটি ভৌত ​​ইন্টারফেসে একটি সেতুর সাথে প্রতিস্থাপন করতে পারেন, তবে আবার, সুবিধাটি হারাবেন।
  • হোস্টের ডিস্ট্রো, libc এবং অন্যান্য লাইব্রেরি সংস্করণগুলির চেয়ে স্বতন্ত্র - প্রতিটি সুবিধাজনক স্টাফের নির্ভরশীলতার সাথে নির্ভরশীলতার সাথে স্ট্যাক চালাতে সক্ষম হওয়াই একটি দুর্দান্ত সুবিধা, তবে ভাগ করা লাইব্রেরিগুলিকে একাধিকবার লোড করা প্রয়োজন (যখন তাদের সংস্করণগুলি পৃথক) আপনার আশা করতে পারে এমন ব্যয় রয়েছে।

এবং তাই এগিয়ে। এই নেটওয়ার্কগুলি আপনাকে আপনার পরিবেশে আসলে কী পরিমাণ প্রভাবিত করে - আপনার নেটওয়ার্ক অ্যাক্সেস প্যাটার্নগুলি, আপনার স্মৃতিতে বাধা ইত্যাদি an এমন একটি আইটেম যার পক্ষে জেনেরিক উত্তর সরবরাহ করা কঠিন।


2
এটি একটি ভাল উত্তর তবে আমি আরও নির্দিষ্ট নম্বর এবং মাপদণ্ডের জন্য সন্ধান করছি। আমি সিগ্রুপের দামের সাথে পরিচিত তবে ডোকার এর চেয়ে বেশি যে আপনি উল্লেখ করেছেন। ধন্যবাদ উত্তরের জন্য অনেক।
লুক হোরস্টেন

6
অবশ্যই। আমার বক্তব্যটি হল যে আপনি যে সাধারণীকরণযোগ্য মানদণ্ডগুলি খুঁজে পেয়েছেন তা কোনও নির্দিষ্ট প্রয়োগের ক্ষেত্রে খুব সীমিত প্রয়োগযোগ্য হবে - তবে এই কথাটি বলার অপেক্ষা রাখে না যে লোকেদের তাদের সরবরাহের চেষ্টা করার সাথে আমি একমত নই, কেবলমাত্র সেগুলি লবণের একটি টেবিল চামচ দিয়ে নেওয়া উচিত।
চার্লস ডাফি 22

1
সেই পদ্ধতিতে আপনি বলতে পারেন যে কেভিএম "ভার্চুয়ালাইজেশন নয় এটি কেবল x86 ভার্চুয়াল প্রযুক্তি কলগুলির শীর্ষে একটি বিমূর্ততা"।
ভাদ

10
@ ভ্যাড, decadesক্যমত্য চুক্তি রয়েছে, কয়েক দশক পিছনে যাচ্ছে (আইবিএম এর প্রথম দিকে নন- x86 হার্ডওয়্যার বাস্তবায়ন!), যে হার্ডওয়্যার স্তরটিতে সরাসরি বিমূর্ততা সরবরাহ করা অসম্ভব ভার্চুয়ালাইজেশন। কার্নেল-স্তরের নেমস্পেসিংয়ের পরিভাষার জন্য sensক্যমত্যটি যথেষ্ট খণ্ডিত - আমরা প্রত্যেকে আমাদের স্বতন্ত্র মতামতের পক্ষে উত্সগুলিতে ইঙ্গিত করতে পারতাম - তবে সত্যই, কার্যকর প্রযুক্তিগত পার্থক্য রয়েছে (উভয় সুরক্ষা এবং কার্যকারিতা বৈশিষ্ট্য) যা একটি একক পদে চলে যাওয়া অস্পষ্ট করে দেবে , সুতরাং বিপরীতে শিল্পের sensক্যমত না হওয়া পর্যন্ত আমি আমার অবস্থান ধরে রেখেছি।
চার্লস ডাফি

@ লুকহোরস্টেন, ... ঠিক আছে, এটি সিগ্রুপগুলি নয় যেগুলির একটি উল্লেখযোগ্য ব্যয় রয়েছে, এটি নেটওয়ার্ক এবং ফাইল সিস্টেমের নেমস্পেসের বিষয়বস্তু more কিন্তু এই ব্যয়গুলি কতটা তা নির্ভর করে ডকার কীভাবে কনফিগার করা হয়েছে - আপনি কোন নির্দিষ্ট ব্যাকেন্ড ব্যবহার করছেন তা নির্ভর করে। ব্রিজিং অনেক বেশি, উদাহরণস্বরূপ ডকারের ডিফল্ট NAT এর চেয়ে অনেক কম সস্তা; এবং বিভিন্ন ফাইল সিস্টেম ব্যাকেন্ডের পারফরম্যান্স ওভারহেডও বন্যভাবে পরিবর্তিত হয় (এবং কিছু ক্ষেত্রে ওভারহেডের পরিমাণ ব্যবহারের প্যাটার্নের উপর নির্ভর করে; একাধিক স্তরগুলির মাধ্যমে বড় আকারের ডিরেক্টরিগুলি এফ / ই সংশোধিত করে ওভারলেফগুলি রূপগুলি আরও বেশি ব্যয়বহুল হতে পারে)।
চার্লস ডাফি

20

এখানে কিছু আরো benchmarks জন্য Docker based memcached serverবনাম host native memcached serverTwemperf বেঞ্চমার্ক টুল ব্যবহার করে https://github.com/twitter/twemperf 5000 সংযোগ এবং 20k সংযোগ হার

ডকার ভিত্তিক মেমক্যাচের জন্য টাইম ওভারহেড সংযোগগুলি প্রায় দ্বিগুণ নেটিভ গতিতে উপরের হোয়াইটপেপারের সাথে একমত বলে মনে হচ্ছে।

Twemperf Docker Memcached

Connection rate: 9817.9 conn/s
Connection time [ms]: avg 341.1 min 73.7 max 396.2 stddev 52.11
Connect time [ms]: avg 55.0 min 1.1 max 103.1 stddev 28.14
Request rate: 83942.7 req/s (0.0 ms/req)
Request size [B]: avg 129.0 min 129.0 max 129.0 stddev 0.00
Response rate: 83942.7 rsp/s (0.0 ms/rsp)
Response size [B]: avg 8.0 min 8.0 max 8.0 stddev 0.00
Response time [ms]: avg 28.6 min 1.2 max 65.0 stddev 0.01
Response time [ms]: p25 24.0 p50 27.0 p75 29.0
Response time [ms]: p95 58.0 p99 62.0 p999 65.0

Twemperf Centmin Mod Memcached

Connection rate: 11419.3 conn/s
Connection time [ms]: avg 200.5 min 0.6 max 263.2 stddev 73.85
Connect time [ms]: avg 26.2 min 0.0 max 53.5 stddev 14.59
Request rate: 114192.6 req/s (0.0 ms/req)
Request size [B]: avg 129.0 min 129.0 max 129.0 stddev 0.00
Response rate: 114192.6 rsp/s (0.0 ms/rsp)
Response size [B]: avg 8.0 min 8.0 max 8.0 stddev 0.00
Response time [ms]: avg 17.4 min 0.0 max 28.8 stddev 0.01
Response time [ms]: p25 12.0 p50 20.0 p75 23.0
Response time [ms]: p95 28.0 p99 28.0 p999 29.0

স্মৃতিযুক্ত বেঞ্চমার্ক সরঞ্জাম ব্যবহার করে বেনমার্কগুলি এখানে

memtier_benchmark docker Memcached

4         Threads
50        Connections per thread
10000     Requests per thread
Type        Ops/sec     Hits/sec   Misses/sec      Latency       KB/sec
------------------------------------------------------------------------
Sets       16821.99          ---          ---      1.12600      2271.79
Gets      168035.07    159636.00      8399.07      1.12000     23884.00
Totals    184857.06    159636.00      8399.07      1.12100     26155.79

memtier_benchmark Centmin Mod Memcached

4         Threads
50        Connections per thread
10000     Requests per thread
Type        Ops/sec     Hits/sec   Misses/sec      Latency       KB/sec
------------------------------------------------------------------------
Sets       28468.13          ---          ---      0.62300      3844.59
Gets      284368.51    266547.14     17821.36      0.62200     39964.31
Totals    312836.64    266547.14     17821.36      0.62200     43808.90

1
তারা দুটি পৃথক বিল্ডকে মেমচেডের সাথে তুলনা করে এবং তাদের মধ্যে একটি ডকারে, অন্যটি ডকের বাইরেও, তাই না?
সান

4
হোস্ট নেটওয়ার্কিং বা ব্রিজ নেটওয়ার্কিংয়ের সাথে এই ফলাফলগুলি কি ডকারে রয়েছে?
ওরফে হুমান

13
এই জাতীয় বড় স্টাডিভগুলির সাথে এই পরিমাপগুলি কোনও উপস্থাপনযোগ্য ডেটা দেখায় নাavg 200.5 min 0.6 max 263.2 stddev 73.85
সের্গেই ঝুককো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.