কেন আপাচি বন্য চলছে এবং মাইএসকিউএল মেরছে?


8

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

আমি সার্ভার অ্যাডমিনে খুব অভিজ্ঞ নই তাই সমস্যাটি কী কারণে ঘটছে তা নির্ধারণ করা আমার পক্ষে খুব কঠিন। যখন আমি লক্ষ্য করেছি যে মাইএসকিউএল ডাউন রয়েছে, তখন আমি শীর্ষে চলে এসে আমার সিস্টেম-লোড স্পাইকে 98.00 এ দেখলাম। সার্ভারটি 10 ​​ভি-হোস্টস চালায় যার মধ্যে সকলেই একটি স্বাস্থ্যকর পরিমাণ ট্র্যাফিক গ্রহণ করে তাই আমি স্পষ্টতই অনেকগুলি অ্যাপাচি -2 প্রক্রিয়া চালিয়ে দেখছিলাম।

উচ্চ সার্ভার লোড 10 মিনিট অবধি চলতে থাকে এবং এরপরে এটি আবার স্বাভাবিক অবস্থায় ফিরে আসে। আমি এই মুহুর্তে নেটওয়ার্ক ট্র্যাফিকের একটি স্পাইক দেখতে পাইনি।

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

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

পরবর্তী সময় এটি ঘটে - আমি কীভাবে সনাক্ত করতে পারি যা সিস্টেমের লোড স্পাইককে সৃষ্টি করছে? এটি কি পিএইচপি স্ক্রিপ্ট হতে পারে যা পাগল হয়ে গেল? এটি কোনও ডিডিওএস আক্রমণ হতে পারে?

মাইএসকিউএল ক্রাশ হওয়ার সাথে সাথে পুনরায় শুরু করার কোনও উপায় আছে?

আমি এখন ইনস্টল করেছি htop। এটি কি এর চেয়ে বেশি কার্যকর হতে পারে top?

এখানে আমার সার্ভারের পরিসংখ্যান:

m1.xlarge (8 ECUs, 4 vCPUs, 15 GiB memory, 4 x 420 GiB Storage Capacity)
Ubuntu Server 12.04.3 LTS 

লগগুলি অক্ষম করা থাকলেও dmesgকী সাহায্য করবে?
ড্যানিয়েল ডাব্লু।

উত্তর:


9

মাইএসকিউএল এখনও কিছু লগ ইন করতে পারে না, কারণ সম্ভবত যা ঘটছে তা হ'ল এপাচের বাচ্চাদের সিস্টেম মেমরির চাপের কারণে এটি সিস্টেমে অনিয়ম করে হত্যা করা হচ্ছে। / Var / log / syslog এ এটির একটি ট্রেইল থাকা উচিত।

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

mysqld_safe Number of processes running now: 0

আমি সন্দেহ করি এমন পরিস্থিতিতে আপনার আইএনডিবি ক্র্যাশ পোস্ট মর্টেমটি দেখুন ।

"কেন" এর আপাতদৃষ্টিতে সহজ উত্তর হ'ল অ্যাপাচি এবং মাইএসকিউএল, আপনার যে ভারী বোঝা এবং আপনার বর্তমান কনফিগারেশনগুলির মধ্যে রয়েছে, আপনার মেশিনে পর্যাপ্ত স্মৃতি নেই এবং ট্র্যাফিক লোড সম্পর্কিত কিছু টিপিং পয়েন্ট রয়েছে যা এই শর্তটি বাইরে নিয়ে আসে this ।

অ্যাপাচি একটি শিশু প্রক্রিয়া থেকে প্রতিটি সমবর্তী ব্রাউজারের অনুরোধ পরিবেশন করে, তাই একত্রে সংযোগের সংখ্যা বাড়ার সাথে সাথে বাচ্চাদের সংখ্যা বাড়বে। আপনাকে প্রথমে এপাচি কনফিগারেশনে এই মানটি সীমাবদ্ধ করতে হবে যাতে আপনি বুঝতে পারবেন আসলে সাম্প্রতিক সংযোগ বাড়ার কারণ কী ... এটি কি কেবল একটি ভারী তবে বৈধ ট্র্যাফিক স্পাইক? কোন ধরণের সেবা অস্বীকার? ডিবি জিজ্ঞাসা করে যেগুলি অনুরোধগুলি বিলম্বিত করে কারণ তারা দীর্ঘ সময় চালায়? কিছু অপ্টিমাইজ করা প্রয়োজন?

http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients

সাম্প্রতিক অ্যাপাচি প্রক্রিয়া সীমাবদ্ধ করা এটির প্রতিরোধ করতে সহায়তা করবে, তবে স্পষ্টভাবে স্পষ্টভাবে মনে করা নিষ্পাপ যে এটি সম্পূর্ণ সমাধান, সুতরাং আমি এটিকে বোঝাতে চাই না। প্রক্রিয়াগুলি একবার যুক্তিসঙ্গত বা কমপক্ষে সুরক্ষিত স্তরে সীমাবদ্ধ হয়ে গেলে আপনি কী ঘটছে তা চিহ্নিত করে এগিয়ে যেতে পারেন। (অ্যাপাচে অন্যান্য সংযম নিয়ন্ত্রণ রয়েছে তবে এটি আমার দক্ষতার ক্ষেত্র নয়))

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


আপনার উত্তরের জন্য ধন্যবাদ, এটি সত্যিই সহায়ক ছিল। আমি পরীক্ষা করেছি / ভেরি / লগ / সিসলগ এবং নিম্নলিখিত লাইনগুলি পেয়েছি: ডিসেম্বর 18 15:48:38 আইপি-10-33-164-173 কার্নেল: [29714591.071719] স্মৃতিশক্তি ছাড়াই: কিল প্রক্রিয়াটি 28369 (মাইএসকিএলডি) স্কোর 21 বা ত্যাগ শিশু 18 ডিসেম্বর 15:48:38 আইপি-10-33-164-173 কার্নেল: [29714591.071753] নিহত প্রক্রিয়া 28369 (মাইএসকিএলডিডি) মোট-ভিএম: 2520332 কেবি, আনন-আরএসএস: 335304 কেবি, ফাইল-আরএসএস: 0 কেবি তাই আপনি ভাবছেন সীমাবদ্ধকরণ এ্যাপাচে ম্যাক্সক্লিয়েন্টস সেটিং করা এটিকে প্রতিরোধ করার জন্য সেরা বাজি? একটি নিরাপদ মান কী হবে বলে আপনি মনে করেন?
বব ফ্লেমিং

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

1

আপনার চেক করার জন্য কিছু পয়েন্ট রয়েছে:

/ Var / লগ / বার্তাগুলি যাচাই করুন: যদি আরও মেমরি ব্যবহারের ব্যবস্থা না থাকে তবে ওমকিলার মাইএসকিএল প্রক্রিয়াটি মেরে ফেলতে পারে। নিখরচায়-এলএম দিয়ে মেষটি পরীক্ষা করুন (ক্যাশে ছাড়াই)

-আপনি যদি প্রেফের্ক এমপিএম দিয়ে অ্যাপাচি ব্যবহার করেন: প্রক্রিয়াটির সংখ্যাটি পরীক্ষা করুন। যদি অ্যাপাচি মাইএসকিএল-এর একটি লিঙ্ক সহ একটি গুরুত্বপূর্ণ সংখ্যক প্রক্রিয়া (ভারী কাজের চাপের সময়) স্ট্যাক করে থাকে তবে ব্যবহৃত ল্যাটেন্সি এবং মেমরিটি দ্রুত বাড়তে পারে।

- একটি ওয়ার্ল্ড স্ট্যাটাসের সাথে মাইএসকিএল দ্বারা সূচিত থ্রেডের সংখ্যাটি পরীক্ষা করুন: থ্রেড_ক্যাচড, থ্রেড_ক্রিয়েটেড এবং থ্রেড_ রুনিং পরীক্ষা করা গুরুত্বপূর্ণ (থ্রেড_সৃজন 0 টির কাছাকাছি হওয়া উচিত)।

- মাইএসকিএল দ্বারা ব্যবহৃত মেষটি পরীক্ষা করুন।


0

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

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