এটি মারা গেলে মাইএসকিএল-কে পুনঃসূচনা করুন


15

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

যেহেতু আমি গতকাল যেমন ছিলাম ততই আমি দরিদ্র এবং আমার র‌্যাকস্পেস ভিএম এর র‌্যাম আপগ্রেড করতে চাই না, তাই মাইকিএসএলএলডিটি মারা যাওয়ার পরে আমি কীভাবে এটি বলতে পারি?

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

সার্ভারটি সেন্টস 6.৩ চালায়


কি ডিস্ট্রো? আমি মনে করি উস্টুন্ট উবুন্টুতে এটি করবে
জার্নম্যান গিক

উপস। সেই
বিশদটি

অঁ্যা। সংস্করণটিও অন্তর্ভুক্ত করতে চাইবে
জার্নিম্যান গীক

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

উত্তর:


16

এটি একটি পরিষ্কার সমাধান নয়, স্পষ্টতই সমস্যাটি প্রথম দিকে এড়ানো ভাল। যাইহোক, সেন্টোস কীভাবে পরিষেবা পরিচালনা করে তা আমি নিশ্চিত নই তবে আমি মনে করি এটি ব্যবহার করে service। যদি তাই হয়, আপনি না পরীক্ষা করতে যদি mysqlসাথে চলছে

/sbin/service mysql status

এই কমান্ডটি mysqlচলমান থাকলে সফলভাবে প্রস্থান করবে এবং যদি আমি না আছি তবে 0 টি বহির্গমন স্থিতি ফিরে পাবে। সুতরাং এই সার্ভিসটি যদি এই আদেশটি দিয়ে না চলে থাকে তবে আপনি এটি শুরু করতে পারেন:

/sbin/service mysql status || service mysql start

/etc/crontabপ্রতি মিনিটে থিস কমান্ড চালু করতে আপনি এই লাইনটি যুক্ত করতে পারেন:

* * * * * /sbin/service mysql status || service mysql start


6

এটি কিছুটা ঝামেলা করছে।

mysqld সবসময় দ্বারা পুনরায় আরম্ভ করা হয় mysqld_safe নীচে একটি অসীম লুপ না থাকায়mysqld_safeঅস্বাভাবিক হরতালের জন্য চেক করতে। ত্রুটিটি খুব গুরুতরmysqld_safeহলেএমনকিmysqldপরবর্তী চেষ্টাগুলিপুনরায় আরম্ভ করতে সক্ষম হবে না।

যে পরিস্থিতিটির mysqld_safeজন্য ডিজাইন করা হয়েছে তা প্রদত্ত, এটি যেভাবেই হোক না কেন এটি প্রত্যাখ্যান করবে mysqldকিনা mysqld_safeতা শুরু করার জন্য বাধ্য করা ভাল ধারণা নয়।

আপনি my.cnf এ ত্রুটি লগ সনাক্ত করতে হবে এটি অধীন হবে

[mysqld]
log-error=log-filename

অথবা

[mysqld_safe]
log-error=log-filename

পাঠ্য ফাইলটি পড়ুন (সম্ভবত চলমান দ্বারা tail -30 log-filename) এবং মাইএসকিএলডি প্রসেসিং বন্ধ হওয়ার উত্সটি আবিষ্কার করুন।


আকর্ষণীয় ... আমার লগটি দেখে এটি বলে যে মাইএসকিএলডিটি আবার চালু হয়েছিল, তবে প্রায় 1-2 ঘন্টা পরে এটি বলবে যে প্রক্রিয়াটি শেষ হয়েছে। তারপরে পরবর্তী রেকর্ডটি আমার ম্যানুয়াল শুরু। সম্ভবত আমার কি মাইএসকিএল_সেফটি ভুল কনফিগার করা আছে?
লস ফ্রিজোলস

3

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

/sbin/service mysqld status || service mysqld restart

এটির কাজ পেতে আমার পরিবর্তন mysqlকরা দরকার mysqld। তা ছাড়া আমি ভুল হবে, " ERROR! MySQL is running but PID file could not be found"।

আমার CentOS 7.2 সিস্টেমে /sbin/serviceপুনর্নির্দেশ করা হয় /bin/systemctl status, সুতরাং নিম্নলিখিত কমান্ডটি কার্যকর করার জন্য দ্রুত।

/bin/systemctl status  mysqld.service || /bin/systemctl start  mysqld.service

আমি সিস্টেমের রুট ক্রন্টবটিতে নিম্নলিখিত লাইনটি যুক্ত করে শেষ করেছি। এটি প্রতি মিনিটে যাচাই করে যে মাইএসকিউএল চলছে এবং স্টাডআউটকে নালিতে পুনর্নির্দেশ করে। পরিষেবাটি আরম্ভ করা কিছু ভুল না হলে আউটপুট আসবে না, সুতরাং শেষ কমান্ডে নাল পুনঃনির্দেশ যুক্ত করার দরকার নেই।

* * * * * /bin/systemctl status mysqld.service > /dev/null || /bin/systemctl start  mysqld.service

ডাবল পাইপ ||মানে ORএবং প্রথম কমান্ডটি যদি কোনওভাবে ব্যর্থ হয় তবে ২ য় কমান্ড কার্যকর করবে। (শূন্যের চেয়ে বড় একটি প্রস্থান কোড ফেরৎ দেয়))

এটি বলার মতো, "1 ম কমান্ডটি চালান, বা 1 তম কমান্ডটি যদি কোনওভাবে ব্যর্থ হয় তবে ২ য় কমান্ড চালান"।

এটি ডাবল এম্পারস্যান্ডের মত নয় &&যা এই বলেছে যে "1 তম কমান্ডটি চালান, এবং যদি 1 তম কমান্ড সফল হয় তবে দ্বিতীয় কমান্ডটি চালান"।


1

নিম্নলিখিত jonnyreeves.co.uk থেকে এসেছে :


এবং অপরাধী পিএইচপি-এফপিএম! একটি তাত্ক্ষণিক গুগল অন্য ওয়ার্ডপ্রেস গ্রাহককে অনুরূপ লক্ষণগুলি ভুগেছে; পরামর্শটি ছিল পিএইচপি-এফপিএম পুল কনফিগারেশন (/etc/php-fpm.d/www.conf) এবং বিকেলের কনফিগারেশনটি টুইঙ্ক করতে। প্রধান পরিবর্তন সরাতে ছিল pm = dynamicথেকে pm = ondemandএকটি সঙ্গে pm.max_childrenমান 5(শ্রমিক প্রতি ~ 5% মেমোরি ব্যবহার দেখে উপর ভিত্তি করে)। কনফিগারেশন পরিবর্তন করার পরে আমি সমস্ত পরিষেবাদি পুনরায় চালু করেছি এবং মেমরির ব্যবহার পরীক্ষা করেছি।

service php-fpm restart
service nginx restart
service mariadb restart

পুনরায় চালু করার পরে মেমরির ব্যবহার নাটকীয়ভাবে কম ছিল।

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