একটি অতিরিক্ত সার্ভারে আমাদের গ্রাহকের ডাটাবেস স্থানান্তরিত করার পরে আমরা একটি সমস্যার মুখোমুখি হয়েছি। এটির সাইটের কর্মক্ষমতাতে ইতিবাচক প্রভাব ফেলতে হবে, তবে মাইআইএসএএম-এ টেবিল লক করার ক্ষেত্রে একটি সমস্যা রয়েছে। (আমি মাইআইএসএএম এর পরিবর্তে ইনোডিবি ব্যবহারের কথা শুনেছি, তবে আমরা অদূর ভবিষ্যতে ইঞ্জিনটি পরিবর্তন করতে পারি না)।
আমরা কোনও আপডেট-ক্যোয়ারীতে এটি স্পট করতে পারি যা কোনও মডারেটর যখন আর্টসাইটে কোনও মন্তব্য সক্রিয় করে তখন সঞ্চালিত হয়। এই প্রক্রিয়া:
- আপডেট-ক্যোয়ারী প্রক্রিয়া করা হয়
SET status = 1 WHERE id = 5(সূচী সেট করা আছে) - পৃষ্ঠার ক্যাশেড ফাইলগুলি মুছে ফেলা হয়
এই মুহুর্তে পুরো পৃষ্ঠাটি ধীর হয়ে যায়। ডাটাবেস নিজেই কয়েক মিনিটের জন্য ব্যস্ত। আমি কয়েকবার প্রসেসলিস্টটি এনেছি এবং বিভিন্ন নির্বাচন-জিজ্ঞাসার প্রায় 60 টি এন্ট্রি দেখেছি, যা সবগুলিই টেবিল স্তরের লকের জন্য অপেক্ষা করছিল ।
১. টেবিলের এই আপডেটটি টেবিল স্তরের লকটির জন্য অপেক্ষা করার জন্য টেবিলের article_commentsজন্য নির্বাচন-বিবৃতিগুলিকে প্রভাবিত করতে পারে কেন আমি তা আবিষ্কার করি না article। প্রসেসলিস্টে প্রায় সমস্ত ওয়েটিং কোয়েরি এই টেবিল থেকেই ছিল। আপডেট / সন্নিবেশগুলি নির্বাচনের ক্ষেত্রে অগ্রাধিকার দেওয়া হয় এবং এটি এ জাতীয় সমস্যার কারণ হতে পারে তা সম্পর্কে আমি পড়েছি, তবে মন্তব্যগুলি সক্রিয় হওয়ার পরে নিবন্ধ-সারণীটি নিজেই আপডেট হয় না, সুতরাং নির্বাচকদের অপেক্ষা করা উচিত নয়। আমি কি এটা মিস করেছি?
২. এই আচরণটি রোধ করতে বা কমপক্ষে আরও ভাল ভারসাম্য বজায় রাখার জন্য ইনোডিবি-তে পরিবর্তনের পাশাপাশি কিছু আছে কি? নতুন সার্ভারে ডাটাবেস সরিয়ে নেওয়ার আগে এই সমস্যাটি উপস্থিত হয়নি বলে আমি খুব বিরক্ত। আমি অনুমান করি যে এখানে কিছু ভুল কনফিগারেশন রয়েছে তবে কীভাবে সনাক্ত করতে হয় তা আমি জানি না।
key_buffer_sizeসেট ছিল 1GB। 10GBসমস্যা কমাতে এটি বাড়ছে ।