আমি কীভাবে মাইএসকিউএল এর মেমরির ব্যবহারটি অনুকূলিত করব?


9

আমার সেটআপ ( উদাহরণ )

আমি নিম্নলিখিত চশমা সহ একটি অ্যামাজন হাই সিপিইউ অতিরিক্ত বড় ইসি 2 উদাহরণে লিনাক্স চালাচ্ছি:

  • মেমরি 7 জিবি
  • 20 ইসি 2 গণনা ইউনিট (2.5 ইসি 2 গণনা ইউনিটগুলির সাথে 8 টি ভার্চুয়াল কোর)
  • স্থানীয় উদাহরণ স্টোরেজ 1690 গিগাবাইট
  • -৪-বিট প্ল্যাটফর্ম

আমার দুটি বড় মাইএসকিউএল ডাটাবেস মাইআইএসএএম স্টোরেজ ইঞ্জিনে চলছে। এর একটি 2 জিবি এবং অন্যটি 500 এমবি। আমি নিশ্চিত করতে চাই যে মাইএসকিউএল যতটা ক্যারিয়ার গতি বাড়ানোর জন্য প্রয়োজন / প্রয়োজন তত বেশি র্যাম ব্যবহার করছে। আমি জানি যে এখানে অনেকগুলি মাইএসকিউএল মেমরি কনফিগার বিকল্প রয়েছে key_buffer_sizeএবং MyISAM_sort_buffer_size,আমি এগুলি অপ্টিমাইজ করার সাথে অপরিচিত।

প্রশ্ন

  1. মাইএসকিউএল বর্তমানে একটি লিনাক্স সিস্টেমে কী মেমরি ব্যবহার করছে তা কীভাবে পরীক্ষা করা যায়?
  2. কীভাবে একজন মাইএসকিউএল মেমরির ব্যবহারকে সর্বাধিকীকরণ / অনুকূলিত করে?
  3. আমার ক্যোয়ারী এবং স্কিমা অপ্টিমাইজ করা হয়েছে তা ধরে নিয়ে, আমার অন্য কোন পরিবর্তনগুলি বিবেচনা করা উচিত?

আপনি এইচটিপি প্রোগ্রামের সাথে চেক করতে পারেন।
neworld

মেমরির ব্যবহারকে সর্বাধিক করে তোলা পুরো ডাটাবেসকে মেমরিতে রূপ দেয় না। আপনার র‌্যাম-ভিত্তিক ফাইল সিস্টেম থাকতে হবে ...

4
র‌্যাম-ভিত্তিক ফাইল সিস্টেমটি অনিরাপদ। সার্ভার ক্র্যাশ হলে সমস্ত ডেটা নষ্ট হয়ে যায়
নিউইর্ল্ড

উত্তর:


7

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

এখানে এমন কিছু যা আপনাকে সহায়তা করতে পারে:

http://www.mysqlperformanceblog.com/2006/09/29/hat-to-tune-in-mysql-server- after- installation / http://www.mysqlperformanceblog.com/2007/11/01/innodb- পারফরম্যান্স-অপ্টিমাইজেশন-বেসিকস / http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/

সম্পাদনা করুন:

@ ড্রু010 যেমন বলেছেন যে ডিবি কীভাবে ব্যবহার করেছে তা বিবেচনা করা গুরুত্বপূর্ণ। ভারী রিড ডিবির জন্য সুর ভারী লেখার চেয়ে খুব আলাদা very এছাড়াও, আপনি অন্যান্য কৌশল বিবেচনা করতে পারেন। মেমক্যাচ, নোসকিএল ডাটাবেস ইত্যাদির মতো


2
সম্মত, তারা তুলনামূলকভাবে বলার মতো খুব ছোট ডাটাবেস। আপনি যদি এক টন ডাটাবেস পড়ার অ্যাক্সেসের প্রত্যাশা করে থাকেন তবে আপনি মেমচেডের মতো কিছু ক্যাচিং সিস্টেম বিবেচনা করতে পারেন যা আপনার অ্যাপ্লিকেশনটি ডাটাবেস থেকে হিট হ্রাস করতে ডাটাবেস থেকে মানগুলি সঞ্চয় করতে ব্যবহার করতে পারে। আপনি যদি বেশিরভাগ সন্নিবেশ করান, তবে ডিস্কটি একটি খুব গুরুত্বপূর্ণ উপাদান হতে চলেছে। আপনার ব্যবহারের ক্ষেত্রে কী কী তা নির্ভর করে কিছুটা ক্ষেত্রে প্রশ্ন depends যদি ডেটাটি খুব বেশি পরিবর্তন হয় না, তবে মাইএসকিএল ক্যোয়ারী ক্যাশে দ্রুত অনুসন্ধানগুলির সাথেও অনেক সাহায্য করতে পারে। আপনার সূচী / প্রাথমিক কীগুলি ভাল কিনা তাও নিশ্চিত করুন।
drew010

+1 আপনি ঠিক ভাই। আমার ধারণা ছিল যে তিনি বেসিক টিউনিংয়ের জন্য বলছিলেন, তবে ডিবি এবং অন্যান্য জিনিসগুলির ব্যবহার বিবেচনা করা গুরুত্বপূর্ণ important আবার, এখানে আলোচনা করা যাবে না, আমি মনে করি।
সান্টিয়াগো.বসুল্টো

1

আপনার যদি নিশ্চিত হওয়া দরকার যে মাইএসকিউএল প্রয়োজনীয় সমস্ত মেমরি ব্যবহার করে তবে আপনাকে ইনোডিবিতে স্যুইচ করতে হবে। আপনি মাইএসকিউএল FULLTEXTঅনুসন্ধানের ক্ষমতা ব্যবহার না করলে কোনও গুরুতর সমস্যা হবে না।

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

এমনকি আপনি যদি আপনার সমস্ত ডেটাবেসকে মেমরিতে রাখেন তবে অপর্যাপ্ত সূচক বা অন্যান্য কারণে আপনার এখনও ধীরগতিতে চলমান প্রশ্ন থাকতে পারে।

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