বিরোধী কুবেরনেটস সিপিইউ ব্যবহার এবং ডকার কনটেইনার মেট্রিক্স


9

আমরা সম্প্রতি আমাদের উত্পাদনের পরিবেশটি কুবারনেটসে সরিয়ে নিয়েছি। আমি ধারকগুলিতে সিপিইউ সীমাবদ্ধতা প্রয়োগ করতে চাই। আমি বিবাদী সিপিইউ মেট্রিকগুলি পেয়ে যাচ্ছি যা এক সাথে মানায় না। এখানে আমার সেটআপ:

  • ডেটাডগ এজেন্টরা এ হিসাবে চলমান Daemonset
  • বিদ্যমান অ্যাপ্লিকেশনগুলি সিপিইউ সীমা ছাড়াই চলছে
  • প্রশ্নযুক্ত ধারকগুলি হ'ল বহু-থ্রেডযুক্ত রুবি অ্যাপ্লিকেশন
  • দুটি মেট্রিক: kubernetes.cpu.usage.{avg,max}এবংdocker.cpu.usage
  • c4.xlarge ক্লাস্টার নোড (4 টি ভিসিপিইউ বা 4000 মিটার কুবারনেটস পদে)

kubernetes.cpu.usage.maxপ্রশ্নযুক্ত ধারকগুলির জন্য ~ 600m প্রতিবেদন করে docker.cpu.usageরিপোর্ট 60 reports। এটি অনুসরণ করে যে একটি 1000 মি সিপিইউ সীমা স্বাভাবিক অপারেশনের অধীনে পর্যাপ্ত ক্ষমতার চেয়ে বেশি হবে।

আমি সীমাটি 1000 মি তে সেট করেছি। তারপর docker.container.throttlesউল্লেখযোগ্যভাবে বেড়ে যায় যখন kubernetes.cpu.usage.maxএবং docker.cpu.usageএকই থাকে। এই সময়ে সমস্ত হাঁটুতে সিস্টেম পড়ে যায়। এটি আমার কাছে অর্থবোধ করে না।

আমি ডকারের পরিসংখ্যান নিয়ে গবেষণা করেছি। দেখে মনে হচ্ছে docker stats(এবং অন্তর্নিহিত এপিআই) সিপিইউ কোর অনুসারে লোডকে স্বাভাবিক করে তোলে। সুতরাং আমার ক্ষেত্রে, docker.cpu.usage60% কুবারনেটসের পদে (4000 মি * 0.60) থেকে 2400 মি পর্যন্ত আসে। তবে এটি কোনও কুবারনেট সংখ্যার সাথে সম্পর্কিত নয়। আমি আমার অনুমানটি পরীক্ষা করার জন্য আরও একটি পরীক্ষা করেছিলাম যে কুবেরনেটস সংখ্যাটি ভুল। আমি সীমাটি 2600 মি (কিছু অতিরিক্ত হেডরুমের জন্য) সেট করেছি। এর ফলে কোনও থ্রটল হয়নি। তবে কুবারনেটস পর্যবেক্ষণ করেছেন সিপিইউ ব্যবহার পরিবর্তন হয়নি। এটি আমাকে বিভ্রান্ত করে তোলে।

সুতরাং আমার প্রশ্নগুলি হ'ল:

  • এটি কি কুবারনেটসের বাগের মতো মনে হচ্ছে (বা স্ট্যাকের কিছু?)
  • আমার বোধগম্যতা কি সঠিক?

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

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

এখানে প্রশ্নটি হল: কীভাবে এই অ্যাপ্লিকেশনগুলির জন্য সিপিইউ ব্যবহার এবং সীমাবদ্ধতার যথাযথভাবে পূর্বাভাস দেওয়া যায়?


সংখ্যাটি কীভাবে সংযুক্ত হয় (বা না) তা দেখতে আপনি কি 1cpu নোড এবং একটি 2 সিপিইউ নোড দিয়ে চেষ্টা করেছিলেন?
তেনসইবাই

উত্তর:


4

একাধিক জিনিস এখানে:

  1. আপনি এডাব্লুএস ইক 2 তে রয়েছেন, অতএব আপনি সিপিইউ পরিমাপের জন্য আপনার উদাহরণে যা যা করছেন তা হাইপাইভাইজার স্তরের নয় সিপু-র স্তরের ক্ষেত্রে সিপিইউ গণনা করছে। এটির জন্য কোনও লোড পরীক্ষা চালান এবং ক্লাউডওয়াচে আইওস্ট্যাট-কেটি 1 এবং সিপিইউ ব্যবহার পরীক্ষা করুন। ক্লাউডওয়াচে সিপিইউ ব্যবহার সর্বদা আইওস্ট্যাট যা রিপোর্ট করবে তার চেয়ে 10-20% বেশি এবং কারণ আইওস্টাট হাইপারভাইজার স্তরে সিপিইউ ব্যবহার দেবে।

  2. ডাবর হিসাবে কীভাবে কুবারনেটস এবং ডকার মেট্রিকগুলি তুলনা করে আমি --cpuset = 1 বা যে কোনও সংখ্যক দিয়ে সমস্ত পাত্রে কেবল একটি একক ভিসিপিইউ ব্যবহার করার অনুমতি দেওয়ার জন্য কোনও পাত্রে চালানোর পরামর্শ দিই।

  3. এছাড়াও এডাব্লুএস 1 সিপিইউ = 2vcpu এ। এটি হাইপারথ্রেড হয় ২ এ গণনা করার সময় আপনি সম্ভবত এটি বিবেচনায় নিতে পারেন।

  4. একটি নির্দিষ্ট অ্যাপ্লিকেশনটির সিপিইউ ব্যবহার দেখতে অবশেষে সেরা মেট্রিক হটো ব্যবহার করে এবং আপনার ক্লাউডওয়াচ মেট্রিকের সাথে সম্পর্কিত হয়।

  5. আমি মাঝে মাঝে ডকার ডিমনও ভার্চুয়াল সিপিইউগুলির মধ্যে একটিতে নিজেকে পিন করা পর্যবেক্ষণ করেছি এবং অতএব আপনি যখন এটি 1000m-এ কমাচ্ছেন, সম্ভবত পুরো সেটআপটি ধীর হয়ে যাচ্ছে কারণ কোনও কোনও ভিপিসি-তে হ্রাস ঘটছে। আপনি এর বিশদ পেতে mpstat ব্যবহার করতে পারেন।

  6. শেষ পর্যন্ত হোস্ট স্তরে আপনি একটি সিপিইউতে ডকার পিন করতে পারেন এবং আরও পর্যবেক্ষণ করতে পারেন।

আশা করি এটি আপনাকে কিছুটা নিকটে এনেছে। আপনি ইতিমধ্যে সমাধান খুঁজে পেলে আমাকে আপডেট করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.