প্রতি সিপিইউ ইউনিকর্ন প্রক্রিয়াগুলির সর্বোত্তম সংখ্যা


16

আমরা ইউনিকর্নের অধীনে রেল অন রেলস ওয়েব অ্যাপ চালাচ্ছি। আমাদের অ্যাপ্লিকেশনটি কঠোরভাবে সিপিইউ আবদ্ধ নয় (আমাদের দ্বৈত জিওন ই 57645 সিস্টেম ডাব্লু / 12 কোর রয়েছে এবং একটি শীর্ষের লোড গড় মূল্য প্রায় 6)। আমরা প্রাথমিকভাবে 40 টি ইউনিকর্ন কর্মী দিয়ে শুরু করেছি তবে সময়ের সাথে সাথে অ্যাপ্লিকেশন মেমরির পদচিহ্নগুলি বৃদ্ধি পেয়েছে। সুতরাং, এখন আমাদের কর্মী প্রক্রিয়া সংখ্যা হ্রাস করতে হবে। আমি ভেবেছিলাম যে স্ট্যান্ডার্ড (সিপিইউ কোর +1 সংখ্যা) সূত্রটি ইউনিকর্নের ক্ষেত্রেও প্রযোজ্য তবে আমার সহকর্মী আমাকে বোঝানোর চেষ্টা করেছিলেন যে আমাদের সিপিইউতে আরও ইউনিকর্ন উদাহরণ সংরক্ষণ করা উচিত এবং এই লিঙ্কটি সরবরাহ করা উচিত । তবুও, আমি নিষ্ক্রিয় ইউনিকর্ন প্রক্রিয়াগুলিতে কেন আমাদের এত বেশি স্মৃতি ব্যয় করতে হবে তা আমি ঠিক নিশ্চিত নই।

আমার প্রশ্ন: সিপিইউ কোর প্রতি একাধিক ইউনিকর্ন উদাহরণ থাকার কারণ কী? এটি কি ইউনিকর্নের কিছু স্থাপত্য বিচিত্রতার কারণে? আমি সচেতন যে ব্যস্ত ইউনিকর্ন প্রক্রিয়াগুলি নতুন সংযোগগুলি গ্রহণ করতে পারে না (আমরা ইউনিকর্স দৃষ্টান্ত বিটিডব্লিউতে যোগাযোগ করার জন্য ইউএনআইএক্স ডোমেন সকেট ব্যবহার করছি) তবে আমি ভেবেছিলাম ঠিক এটি সমাধান করার জন্য ব্যাকলগটি চালু হয়েছিল। সিপিইউ নিয়মে এই 2 থেকে 8 টি ইউনিকর্ন দৃষ্টান্তগুলি কীভাবে কাটিয়ে ওঠা সম্ভব?

উত্তর:


17

ঠিক আছে, আমি উত্তরটি শেষ পর্যন্ত খুঁজে পেয়েছি। ইউনিকর্ন কর্মীদের অনুকূল সংখ্যা সিপিইউ কোরগুলির সংখ্যার সাথে সরাসরি সংযুক্ত নয়, এটি আপনার বোঝা এবং অভ্যন্তরীণ অ্যাপ্লিকেশন কাঠামো / প্রতিক্রিয়াশীলতার উপর নির্ভর করে। মূলত আমরা শ্রমিকদের অবস্থা নির্ধারণ করতে স্যাম্পলিং প্রোফাইলার ব্যবহার করি, আমরা শ্রমিকদের %০% অলস এবং ৩০% প্রকৃত কাজটি করার চেষ্টা করি। সুতরাং, স্যাম্পলগুলির 70% "সীমানা সার্ভার থেকে একটি অনুরোধ পেতে" নির্বাচন () কলটিতে অপেক্ষা করা উচিত "। আমাদের গবেষণায় দেখা গেছে যে শ্রমিকদের কেবলমাত্র 3 কার্যকর রাষ্ট্র রয়েছে: নমুনাগুলির 0-30% অলস, 30-50% নমুনাগুলি অলস এবং 50-70% নমুনাগুলি নিষ্ক্রিয় (হ্যাঁ আমরা আরও নিষ্ক্রিয় নমুনা পেতে পারি তবে সেখানে রয়েছে) এটির কোনও আসল বিষয় নয় কারণ অ্যাপ্লিকেশন প্রতিক্রিয়াশীলতা উল্লেখযোগ্যভাবে পরিবর্তিত হয় না)। আমরা 0-30% পরিস্থিতিটিকে "রেড জোন" এবং 30-50% পরিস্থিতিটিকে "হলুদ অঞ্চল" হিসাবে বিবেচনা করি।


1
আপনি কীভাবে এই শ্রমিকদের রাষ্ট্রের নমুনা নিচ্ছেন তা ব্যাখ্যা করতে পারেন?
dps

6

আপনি সিপিইউযুক্ত কাজের জন্য N + 1 সম্পর্কে ঠিক বলেছেন।

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

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


1
ভাল কথা, আসুন ধরে নেওয়া যাক অনুরোধগুলি কম-বেশি সমানভাবে বিতরণ করা হয়েছে এবং বেশ হালকা ওজনযুক্ত (আমাদের কাছে ভারী অনুরোধগুলি রয়েছে তবে তারা ইউনিকর্নের একটি অন্য পুল দ্বারা পরিচালিত হয়)। যদি সমস্ত অনুরোধগুলি হঠাৎ ভারী হয়ে যায় (যেমন কোনও ডিবি নোডে I / O অনাহারের ক্ষেত্রে) তবে আমার ধারণা অনুযায়ী প্রতি সিপিইউয়ের সংখ্যার নির্বিশেষে আমরা নীচে নেমে যাব। ভাল, সম্ভবত সত্য জানার সর্বোত্তম উপায় হ'ল এক ধরণের লোড টেস্টিং করা।
অ্যালেক্স

হ্যাঁ, পরীক্ষা আপনাকে বলবে। অথবা, যদি আপনি ইতিমধ্যে শুরু করেছেন, আপনি লগগুলি গ্রেপ করতে পারেন এবং সর্বাধিক সংখ্যক সহবর্তী অনুরোধগুলি সন্ধান করতে পারেন। আমি বেশ নিশ্চিত, আপনি অনুরোধ সময় এবং ব্যাকএন্ড প্রতিক্রিয়া সময় উভয় লগ। নাগিনেক্স আপনার বন্ধু হবে যদি আপনি না করেন। :)
অন্ধকার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.