মাইএসকিউএল প্রক্রিয়া সিপিইউ ব্যবহারের 100% ছাড়িয়ে যায়


11

আমি আমার ল্যাম্প সার্ভারে কিছু সমস্যা অনুভব করছি। আমার ওয়েবসাইটগুলিতে দর্শনার্থীর সংখ্যা খুব বেশি পরিবর্তিত না হওয়া সত্ত্বেও সম্প্রতি সবকিছু খুব ধীর হয়ে গেছে। আমি যখন topকমান্ড চালাই , তখন এটি বলে যে মাইএসকিউএল প্রক্রিয়াটি সিপিইউর 150-200% এর বেশি সময় নিয়েছে। কীভাবে সম্ভব, আমি সবসময় ভেবেছিলাম যে 100% সর্বাধিক?

আমি 1,5 গিগাবাইট র‌্যাম সহ উবুন্টু 9.04 সার্ভার সংস্করণটি চালাচ্ছি।

my.cnf সেটিংস:

key_buffer      = 64M
max_allowed_packet  = 16M
thread_stack        = 192K
thread_cache_size       = 8

myisam-recover         = BACKUP
max_connections        = 200
table_cache            = 512
table_definition_cache = 512
thread_concurrency     = 2

read_buffer_size = 1M
sort_buffer_size = 4M
join_buffer_size = 1M

query_cache_limit   = 1M  # the maximum size of individual query results
query_cache_size    = 128M

এখানে মাইএসকিউএলটিউনারের আউটপুট :

মাইএসকিউএলটিউনার আউটপুট

topকমান্ড প্রয়োগ করুন:

শীর্ষ আউটপুট

এই সমস্যার কারণ কি হতে পারে? আমি কি my.cnfসার্ভারকে হ্যাং করা থেকে রক্ষা করতে আমার পরিবর্তন করতে পারি ?

উত্তর:


15
  1. কী বাফার বাড়ান (আপনার বর্তমানে 64MB, তবে মোট সূচকগুলি 116 এম, সুতরাং কমপক্ষে 128MB রাখুন)। অবিলম্বে সাহায্য করা উচিত।
  2. আপনার টেবিলগুলিতে mysqloptimize এবং mysqlrepair চালান
  3. সারণী ক্যাশে বৃদ্ধি / টেবিল ক্যাশে হিট রেট বাড়ানোর জন্য টেবিলের মোট সংখ্যা হ্রাস করুন। হতে পারে আপনি কিছু অব্যবহৃত বা পুরানো টেবিল পেয়েছেন যা মুছতে পারে।

অন্যান্য প্রস্তাবিত বিভ্রান্তি বিকল্প:

  • লগ_স্লো_কিউরিজ = /var/log/mysql/mysql-slow.log
  • দীর্ঘ_ প্রশ্ন_কাল = 4
  • লগ-প্রশ্নের নয়-ব্যবহার-ইনডেক্স

কিছু সময় পরে লগ ফাইল চেক করুন।


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

আমাকে বলুন, আপনি কীভাবে গণনা করেছেন যে মোট সূচকগুলি 116M?
টেম্নোভিট

এটি নিজেই পেয়েছি :)
টেম্নোভিট

5

আপনার একটি প্রসেসর রয়েছে যার একাধিক কোর রয়েছে বা আপনার একাধিক প্রসেসর রয়েছে। আপনার যদি দুটি কোর থাকে এবং কোনও প্রক্রিয়া উভয় কোরের 100% ব্যবহার করে তবে এটি 200% শীর্ষে প্রদর্শিত হবে।

তেমনি, এটি সম্ভবত উদ্দেশ্য হিসাবে কাজ করছে - আপনার কনফিগারেশনে কোনও ভুল নেই। আপনি যা পোস্ট করেছেন তা থেকে যদি আপনি ঘন ঘন হ্যাংয়ের সম্মুখীন হন তবে আপনি আপনার টেবিলগুলিতে যথাযথ সূচীগুলি যুক্ত করতে চাইতে পারেন (বা আপনার প্রশ্নগুলি অনুকূল করে তোলা)।


5

top -Hসমস্ত চলমান থ্রেড দেখতে রান করুন এবং কেবল সামগ্রিক প্রক্রিয়া নয়। এছাড়াও, আপনি 1উপরে থাকা অবস্থায় কীটি আঘাত করলে এটি পৃথক সিপিইউ / কোরগুলির জন্য সিপিইউ ব্যবহার আপনাকে দেখায়।


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

1

মাইকিউএলএর একাধিক প্রক্রিয়া (থ্রেড) রয়েছে স্বতন্ত্রভাবে কাজ করা, উদাহরণস্বরূপ, ডিস্কের উপর মেমরি থেকে ডেটা লেখার জন্য দায়বদ্ধ। সিপিইউতে একাধিক কোর (এবং / অথবা একাধিক সিপিইউ) দিয়ে, একাধিক থ্রেড কাজ করছে, এবং তাই এটি একটি একক কোরের 100% এরও বেশি চালাতে পারে - সরল স্তরে, সম্ভবত দুটি কোরের 75% চলছে , দিচ্ছে 150%।


1

আমি একটি সমস্যা লক্ষ্য করেছি, সিপিইউ সম্পর্কিত নয়। আপনি যদি একই সার্ভারে অ্যাপাচি এবং মাইএসকিউএল ব্যবহার করে থাকেন তবে আপনার অ্যাপাচের ক্রিয়াকলাপ বাড়লে আপনি খারাপ অবস্থার ( র‌্যাম ) পৌঁছাতে পারবেন ।

মাইএসকিউএলটিউনার আপনাকে বলেছে যে 200 টি উপলব্ধ সংযোগ (আপনার সর্বাধিক সংযোগ সেটিং) ব্যবহার করে আপনি র‌্যামটি পূরণ করবেন। আসুন ধরা যাক আপনার কাছে 150 টি প্রক্রিয়া সীমাবদ্ধ রয়েছে আপনি যখন মাইএসকিউএল এবং অ্যাপাচি 150 সংযোগ ব্যবহার করার চেষ্টা করবেন তখন অবশ্যই আপনার যথেষ্ট পরিমাণে র‍্যাম থাকবে না (যেমন অ্যাপাচি পাশাপাশি একটি ভাল র‌্যাম খাওয়ার)।

সুতরাং এটি র‌্যাম সম্পর্কে এবং সম্ভবত আপনি এখনও আঘাত করতে পারেন না :-) শীর্ষ কমান্ডগুলি কেবল 15 টি অ্যাপাচি প্রক্রিয়া দেখায় (তবে আপনি লোড এভারেজ 3/6/16 তাই বোঝা যাচ্ছে যে ঝড়টি 15 মিনিট আগে ছিল এবং এখন রয়েছে ছাড়ার)।

শাকাল্যান্ডির ভাল প্রতিক্রিয়া পরিপূরক করতে সিপিইউ সমস্যা সম্পর্কে, এটি একটি একক ক্যোয়ারির কারণে হতে পারে। এটি একটি বিশাল টেবিলের মধ্যে থাকতে পারে, বা প্রচুর পুনরায় সূচীকরণমূলক কাজ করতে পারে বা প্রচুর অস্থায়ী ফাইল ব্যবহার করে একটি সূচি অনুপস্থিত (মুছে ফেলা হয়?) ইত্যাদি ইত্যাদি সনাক্ত করার একমাত্র উপায় হ'ল স্লো ক্যোয়ারী লগ সক্রিয় করা (সম্ভবত হতে পারে) 8 ই এর মতো একটি উচ্চ থ্রাইসোল্ড সহ) তারপরে এই ধীর ক্যোয়ারী লগটি বিশ্লেষণ করতে mysqlsla সরঞ্জামটি ব্যবহার করুন এবং চিহ্নিত প্রশ্নের উপরে কিছু ব্যাখ্যা চালান।


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