আমার একটি পরিস্থিতি রয়েছে যেখানে নিম্নলিখিতটি সংঘটিত হচ্ছে:
আমরা ৮-কোর, ৮ জিবি র্যাম, ২.6 গিগাহার্টজ সহ লিনোডে আছি - এনজিনেক্স + পিএইচপি-এফপিএম ব্যবহার করে - আমরা সিপিইউ ব্যবহারের অত্যন্ত উচ্চতর গ্রাফ পাচ্ছি (যা আমরা এরকম খারাপ ভিপিএস প্রতিবেশী হতে চাই না) ...
আমাদের সাইটে সাইটে প্রায় 100 এরও কম ব্যবহারকারী রয়েছে - সুতরাং এই পরিস্থিতিটি অবিশ্বাস্যরকমভাবে বিব্রতও হয় - যে আমাদের সিপু ব্যবহার খুব বেশি।
আমরা খুব অজানা, সম্ভবত সিপিইউ নিবিড় পিএইচপি-ভিত্তিক, জ্ঞাত, ডকুমেন্টেড, ওয়ার্ডপ্রেস বা ড্রুপালের মতো ভাল নকশাকৃত অন্যান্য ফ্রেমওয়ার্কের পরিবর্তে প্রশ্নযুক্ত ভয়ঙ্কর ফ্রেমওয়ার্ক ব্যবহার করছি যেখানে ক্যাচিংয়ের পাশাপাশি প্রচুর ডকুমেন্টেশন রয়েছে (পাশাপাশি প্লাগইনস যে হ্যান্ডেল ক্যাচিং করে) একটি এনগিনেক্স + পিএইচপি_এফপিএম প্ল্যাটফর্মে পিএইচপি।
সুতরাং, আমাদের প্রায় 6 টি ওপেন পিএইচপি-এফপিএম প্রক্রিয়া রয়েছে যেগুলি যখন চালানো হয় তখন স্বতন্ত্রভাবে লার্জি (30+ এবং প্রায়শই 99% এর কাছাকাছি) পরিমাণ পরিমাণ সিপিইউ গ্রহণ করে - এবং কীভাবে এগুলিকে এত বেশি সিপিইউ ব্যবহার করা থেকে বিরত রাখা যায় সে সম্পর্কে আমি সামান্যতম ধারণাও পাইনি I । আমি বলতে পারি না যে কোন পিএইচপি স্ক্রিপ্টগুলি এই স্পাইকগুলি সৃষ্টি করছে কারণ সেগুলি সর্বদা ঘটে চলেছে ... সাধারণত কেবল 1 বা 2 চলমান থাকে - তবে যখন সমস্ত 6 রান হয় তখন আমরা সমস্ত 8 সিপাসকে সর্বাধিক করি।
আমার পুল.ডি / www.conf ফাইলে নিম্নলিখিত সেটিংস রয়েছে:
pm = dynamic pm.max_children = 10 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 6
আমরা এটি সেটআপটি করেছি কারণ, যেভাবে আমি এটির ব্যাখ্যা করছি, আমাদের স্মৃতিটি আশ্চর্যজনক (এইচটিপিটি 472/7000 + এমবি ব্যবহৃত, কোনও অদলবদল ইত্যাদি দেখায়) এবং আমরা আরও অনেকগুলি প্রক্রিয়া পরিচালনা করতে পারি এবং অপেক্ষা করার লাইনটি ভেঙে ফেলতে পারি প্রক্রিয়াজাত করা হয়েছে - তবে দুর্ভাগ্যক্রমে, যেহেতু প্রতিটি প্রক্রিয়া চলমান অবস্থায় আমাদের সিপিইউতে খুব তীব্র হয় - আমরা ছাদ দিয়ে আমাদের সিপিইউ চালিত করি - সুতরাং আমরা পর্যাপ্ত প্রক্রিয়াগুলি পরিচালনা করতে পারি না।
প্রশ্ন - পিএইচপি-এফপিএম সিপিইউর প্রসেসটি হ্রাস করতে আমরা পৃথিবীতে কী করতে পারি যাতে আমরা পিএইচপি-এফপিএম-এর জন্য এই পুল কনফাইলে ফাইলের সেটিংস বাড়িয়ে দিতে পারি - এবং হ্যাঁ, /var/log/php5-fpm.log আমাদের বাচ্চাদের বাড়াতে এবং আমাদের ন্যূনতম / সর্বাধিক / সার্ভারগুলি শুরু / বাড়ানোর জন্য আমাদেরকে চিৎকার করছে। তবে এটি করা আমাদের বোঝার গড়টিকে পাগল করে তুলেছে আগের মতো। প্রয়োজনীয়ভাবে কোনও ক্যাশে ব্যবহার না করে আমরা কীভাবে এটি করতে পারি বা আমাদের বিকল্পগুলি কী?
আমার ধারণা? আমি সিপুলিমিট ব্যবহার সম্পর্কে জিনিসগুলি পড়েছি তা নিশ্চিত করার জন্য যে কোনও প্রক্রিয়া বরাদ্দকৃত পরিমাণ সিপিইউর চেয়ে বেশি গ্রহণ করে না - তবে কী সেই ধীর জিনিসগুলি অকেজো হয়ে যাবে? অথবা এটি করার মাধ্যমে আমরা কয়েকটি প্রক্রিয়া-র চেয়ে বেশি চালানোর দক্ষতা বাড়িয়ে তুলতে পারি - আমি দু'টি পুল চালানোর কথাও ভেবেছিলাম - একটি আমাদের ফরোয়ার্ড ওয়েবসাইটের জন্য (গ্রাহকদের কী অভিজ্ঞতা) এবং অন্যটি ব্যাকএন্ডের জন্য (যা আমাদের ফরোয়ার্ড ফেসিং সাইটকে প্রভাবিত করে যখন সময় -সংশ্লিষ্ট প্রতিবেদনগুলি চালানো হচ্ছে)।
আমি এই বিষয় নিয়ে কিছুদিন গবেষণা, গুগলিং ইত্যাদিতে গবেষণা করে কাটিয়েছি - এবং এটি কঠিন কারণ প্রত্যেকের পরিস্থিতি তাদের ব্যবস্থার পক্ষে এতটাই অনন্য - সমস্যাটি এমন একটি নির্দিষ্ট শোনেনি, সম্ভবত খারাপভাবে লেখা হয়েছে - কাঠামো তৈরি করছে - সমাধান খুঁজে পাওয়া শক্ত। আমরা কেবল এই ফ্রেমওয়ার্কটি কেবল এখনও স্ক্র্যাপ করতে পারি না - আমাকে কোনও ধরণের সমাধান খুঁজে পেতে হবে।
আপডেট: আমি পিএইচপি সেশনগুলি সংরক্ষণ করার জন্য ম্যাকচেস প্রয়োগ করেছি - কারণ কাঠামোটি ব্যবহারকারী সেশনগুলির উপর প্রচুর পরিমাণে নির্ভর করে এবং আমাদের সিস্টেমের প্রকৃতি হ'ল কর্মীরা প্রায়শই এক সাথে বেশ কয়েকটি ট্যাব ব্যবহার করেন - প্রতিটি সক্ষমতা / ব্যবহারকারীর ডেটা / ইত্যাদি নিশ্চিত করতে সেশনে ফিরে যাচ্ছেন each ... সুতরাং আমি এ থেকে পারফরম্যান্সে কিছুটা বাড়তি দেখার আশাবাদী - আপনি যদি এটি চান তাতে মন্তব্য করতে স্বাগতম - আমরা যখন আমাদের উচ্চতর পরিমানের শিখর সময়টি কাটিয়েছি তখন দেখব কীভাবে এটি হয় tomorrow