জ্যাঙ্গো: CONN_MAX_AGE সংযোগ অব্যাহত রাখে, তবে পোস্টগ্র্রেএসকিউএল দিয়ে সেগুলি পুনরায় ব্যবহার করে না


17

আমি একটি জ্যাঙ্গো সেটআপ পেয়েছি জবানো 1.6.7 এবং উবার্টু 14.04 এলটিএসে পোস্টগ্র্যাস 9.3 ব্যবহার করছি।

যে কোনও সময়, সাইটটি পোস্টগ্র্রেএসকিউএল ডাটাবেসে প্রায় 250 ডলার একযোগে সংযোগ পায় যা 2.5GHz এ কোয়াড কোর জিয়ন ই 5-2670, এবং এতে 16 গিগাবাইট র্যাম রয়েছে। দিন জুড়ে সেই নির্দিষ্ট মেশিনে লোড গড় প্রায় 20 থেকে 30 হয়।

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

যেহেতু আমরা জাজানো 1.6 ব্যবহার করছি, আমাদের কাছে বিলিং ইন পুলিং রয়েছে। যাইহোক, আমি যখন CONN_MAX_AGE 10 সেকেন্ড বা 60 সেকেন্ডে সেট করি তখন প্রায় ততক্ষণে একযোগে সংযোগের সংখ্যা সর্বাধিক অনুমোদিত সেটিংসে লাফিয়ে যায় (যা আমরা সাধারণত যা দেখি তার দ্বিগুণ) এবং সংযোগগুলি প্রত্যাখ্যান করা শুরু করে।

সুতরাং, এটা কি কখনও কারণ সংযোগের প্রদর্শিত হয় persisting, কিন্তু তারা না পুনঃব্যবহৃত করা হচ্ছে।

এর কারণ কি হতে পারে?

পুনশ্চ. আমরা - ওয়ার্কার-ক্লাস = ইভেন্টলেট সহ গানিকার্ন ব্যবহার করছি। সম্ভবত এটিই আমাদের দুর্দশার উত্স?

উত্তর:


18

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

ইভেন্টলেটটি অক্ষম করা আমাদের ওয়েব সার্ভারগুলিতে বোঝা বাড়িয়েছে (তবে খুব বেশি নয়), তবে পোস্টগ্রিজ লোড এখন 30 থেকে কমিয়ে গড়ে 3 এ চলেছে।


2
আপনি সবেমাত্র আমাদের টন সময় বাঁচিয়েছেন! আমরা ঠিক একই আচরণ পর্যবেক্ষণ করি এবং আমরা ইভেন্টলেটটি ব্যবহার করি। সংযোগ পুলিংয়ে স্যুইচ করার চেষ্টা করবে এবং এটি কীভাবে কাজ করবে তা দেখুন।
সাইলেন্সার

3
আপডেট: pgBouncer এর সাথে ডাটাবেস সংযোগগুলি পুলিং সমস্যার সমাধান বলে মনে হয়েছিল (আমরা এখনও ইভেন্টলেট ব্যবহার করছি)
সাইলেন্টার

স্পষ্টতই সাইকোগ্রিন রয়েছে: পাইপাই.পিথন.আর.পিপি / অ্যাপসাইকোগ্রিন / ১.০ (আমি একবার এটি চেষ্টা করে দেখিনি CONN_MAX_AGE শূন্যে নির্ধারণ করে এটি আমাদের সিস্টেমকে একটি ডিবি সংযোগ তৈরি করতে 20 মিমি লাগে তাই আমাদের কেবল পুলিংয়ের প্রয়োজন হবে না)
ড্যারেন

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