আমি ইউটিউএসএসআইআই এবং এনজিএনএক্স ব্যবহার করে সেন্টস সার্ভারে একটি পাইথন পিরামিড অ্যাপ্লিকেশন চালিয়ে যাচ্ছি। আমি এসকিউএলএলকেমিকে একটি ওআরএম হিসাবে, মাইএসকিউএসএলডিবি হিসাবে এপিআই এবং মাইএসকিউএল ডেটাবেস হিসাবে ব্যবহার করছি। সাইটটি এখনও লাইভ যায় নি, সুতরাং কেবলমাত্র ট্র্যাফিকটি আমি এবং সংস্থার কিছু অন্যান্য কর্মচারী। আমরা ডাটাবেস পপুলেট করার জন্য কিছু ডেটা কিনেছি, তাই বৃহত্তম (এবং প্রায়শই জিজ্ঞাসা করা হয়) সারণীটি 150,000 ডলার সারি।
গতকাল আমি দ্রুত ধারাবাহিকতায় ওয়েবসাইটের চারটি নতুন ট্যাব খুলেছি এবং আমি 502 ব্যাড গেটওয়ের ত্রুটিগুলি ফিরে পেয়েছি। আমি ইউডাব্লুএসএসআইআই লগতে দেখেছি এবং নিম্নলিখিতগুলি পেয়েছি:
sqlalchemy.exc.OperationalError: (OperationalError) (2006, 'MySQL server has gone away') 'SELECT ge...
গুরুত্বপূর্ণ দ্রষ্টব্য: এই ত্রুটিটি মাইএসকিউএল এর অপেক্ষা_সময়ের কারণে নয়। ওখানে এসেছি।
একসাথে অনুরোধগুলি একই সাথে পরিবেশিত হওয়ার কারণে সমস্যাটি হয়েছে কিনা তা আমি ভাবছিলাম। আমি নিজেকে একটি দরিদ্র লোকের লোড পরীক্ষক করে তুলেছি:
for i in {1..10}; do (curl -o /dev/null http://domain.com &); done;
নিশ্চিতভাবেই, এই দশটি অনুরোধের মধ্যে কমপক্ষে একটি 2006 টি ত্রুটি ফেলতে পারে, প্রায়শই বেশি। কখনও কখনও ত্রুটিগুলি এমনকি অপরিচিত হয়ে উঠত, উদাহরণস্বরূপ:
sqlalchemy.exc.NoSuchColumnError: "Could not locate column in row for column 'table.id'"
কলামটি সুনির্দিষ্টভাবে উপস্থিত থাকলে এবং অন্যান্য সমস্ত অনুরূপ অনুরোধে সূক্ষ্মভাবে কাজ করে। বা, এই এক:
sqlalchemy.exc.ResourceClosedError: This result object does not return rows. It has been closed automatically.
আবার যখন, এটি অন্য সমস্ত অনুরোধগুলির জন্য ভাল কাজ করেছে।
সমসাময়িক ডাটাবেস সংযোগ থেকে সমস্যাটি উদ্ভূত হয়েছে তা যাচাই করার জন্য, আমি অনুরোধগুলি একবারে একবারে প্রক্রিয়া করতে বাধ্য করে, একক কর্মী এবং মাল্টি-থ্রেডিং অক্ষম করে uWSGI সেট করেছিলাম। নিশ্চিতভাবেই, সমস্যাগুলি অদৃশ্য হয়ে গেল।
সমস্যাটি অনুসন্ধানের প্রয়াসে, আমি মাইএসকিউএল-এর জন্য একটি ত্রুটি লগ সেট আপ করেছি। মাইএসকিউএল শুরুর সময় কিছু বিজ্ঞপ্তি বাদ দিলে তা খালি থাকে।
এখানে আমার মাইএসকিউএল কনফিগারেশন রয়েছে:
[mysqld]
default-storage-engine = myisam
key_buffer = 1M
query_cache_size = 1M
query_cache_limit = 128k
max_connections=25
thread_cache=1
skip-innodb
query_cache_min_res_unit=0
tmp_table_size = 1M
max_heap_table_size = 1M
table_cache=256
concurrent_insert=2
max_allowed_packet = 1M
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
innodb_file_per_table=1
log-error=/var/log/mysql/error.log
ত্রুটি সম্পর্কে ভারী গুগলিং সামান্য প্রকাশিত হয়েছে, তবে আমি সর্বোচ্চ_গোলিত_প্যাকটি বাড়ানোর পরামর্শ দিয়েছি। আমি এটিকে 100 এম এ বাড়িয়ে মাইএসকিউএল পুনরায় চালু করেছি, তবে এটি কোনও লাভ হয়নি।
সংক্ষিপ্তসার হিসাবে: মাইএসকিউএল কারণ 2006, 'MySQL server has gone away'
এবং অন্যান্য কিছু অদ্ভুত ত্রুটির সাথে একযোগে সংযোগ । মাইএসকিউএল এর ত্রুটি লগতে প্রাসঙ্গিকতার কিছুই নেই।
আমি এটি কয়েক ঘন্টা ধরে কাজ করে যাচ্ছি এবং কোন অগ্রগতি করি নি। কেউ আমাকে সাহায্য করতে পারেন?