8 জিবি র‌্যামের জন্য সেরা মাইএসকিউএল ক্যাশে সেটিংস কেবল ইনোডিবি (5 জিবি ডাটাবেস) ব্যবহার করে মাইএসকিউএল সার্ভারকে নিবেদিত করে


20

পারফরম্যান্সের জন্য মাইএসকিউএল সেটআপ করার সময় আমি একটি খুব বড় নবুব। এবং সত্যই আমি মাইএসকিউএল থেকে প্রতিটি শেষ বিট নিখুঁত করার জন্য সূক্ষ্ম সুরকরণ সম্পর্কে উদ্বিগ্ন নই, তবে আমি জানি যে সবচেয়ে গুরুত্বপূর্ণ ফলাফল প্রদান করা সবচেয়ে গুরুত্বপূর্ণ কাজটি সঠিকভাবে ক্যাশে / বাফার সেট আপ করা।

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

আমার ক্যোয়ারী ক্যাশে কত স্মৃতি বরাদ্দ করা উচিত? InnoDB বাফার পুল কত? বাকি কম্পিউটারের জন্য (অর্থাত্ মাইএসকিউএল সম্পর্কিত নন)? প্রভৃতি

যেহেতু আমি মাইআইএসএএম ব্যবহার করছি না কী কী ক্যাশে সঠিকভাবে আমার অনেক বেশি মেমরি রাখার দরকার নেই?

উত্তর:


25

এটি ডাটাবেস নিজেই খুব কিছু না জেনেই কঠিন। কয়েকটি সরঞ্জাম রয়েছে যা সম্পর্কে আপনার সচেতন হওয়া উচিত;

মেমরির পুরো ডাটাবেস সংরক্ষণ করার বিষয়ে; ডাটাবেসে পরিবর্তনগুলি করা কোনও প্রশ্ন ডিস্কে লেখার সম্পাদনা না করা অবধি খোলা থাকবে। ডিস্ককে কোনও বাধা হয়ে দাঁড়াতে পারে এমন একমাত্র জিনিস হ'ল লিখিত ক্যাশেযুক্ত একটি ডিস্ক-নিয়ন্ত্রক।

আমি ডিফল্টগুলি থেকে নিম্নলিখিত পরিবর্তনগুলি দিয়ে শুরু করব:

key_buffer_size = 128M
thread_stack = 128K
thread_cache_size = 8
table_cache = 8192
max_heap_table_size = 256M
query_cache_limit = 4M
query_cache_size = 512M

innodb_buffer_pool_size = 4G 

# This is crucial to avoid checkpointing all the time:
innodb_log_file_size = 512M

# If you have control on who consumes the DB, and you don't use hostnames when you've set up permissions - this can help as well.
skip_name_resolve

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


ধন্যবাদ আমি এটিকে একটি শট দেব এবং দেখুন যে আমি নতুন কিছু শিখতে পারি কিনা।
বিলমার্কি

@ বিলমালার্কি সার্ভারফাল্টে আপনাকে স্বাগতম! :) আপনি উত্তরটি পেয়ে সন্তুষ্ট হলে প্রশ্নটিকে উর্ধ্বতন দেওয়া বা চিহ্নিত করতে সঠিক মনে করুন।
Kvisle

Mysqltuner.pl সুপারিশ করার জন্য +1 !!!
RolandoMySQLDBA 21

স্বাগতম! স্বাগতম! স্বাগতম! আমি কিছুক্ষণ স্ট্যাকওভারফ্লো প্রায় ছিলাম (ভাল ... কয়েক মাস যা ...) তবে আমি সার্ভারফল্টে নতুন। আমি প্রকৃতপক্ষে voxel.net এর সাথে হোস্ট করি এবং তাদের পরিচালিত হোস্টিং (আইআই সিস্টেম সমর্থন) সত্যিই দুর্দান্ত তবে আমি বুঝতে পেরেছিলাম যে বাইরের দৃশ্যের খোঁজ করাও যথাযথ হবে তাই তাদের সাথে এই বিষয়ে কথা বলার সময় আমি একটি সম্পূর্ণ সরঞ্জামের মতো শব্দ করি নি।
বিলমালার্কি

1
@ কেভিসলে এছাড়াও, আমি একটি সঠিক উত্তর চিহ্নিত করব তবে আমি চাই একটি ভাল মস্তিষ্ক পেতে এই জন্য কিছুটা স্টু করা উচিত।
বিলমালার্কি

9

আইএমএইচও আপনার সাথে যেতে সক্ষম হওয়া উচিত

innodb_buffer_pool_size=5G

এটি ডিবি সংযোগগুলির জন্য সার্ভার ওএস প্লাস মেমরির জন্য পর্যাপ্ত পরিমাণ র‌্যামের সাথে র‌্যামের 62.5% হবে

@kvisle mysqltuner.pl ব্যবহার করার পরামর্শ দিয়েছে। Join_buffer_size, sort_buffer_size, read_buffer_size এবং read_rnd_buffer_size কে উত্সর্গীকৃত র‌্যামের পরিমাণ বিচার করার জন্য এই স্ক্রিপ্টটি দুর্দান্ত। এই 4 টি বাফার একসাথে যুক্ত হয়েছে সর্বোচ্চ_ সংযোগগুলি দ্বারা গুণিত lied এই উত্তরটি স্ট্যাটিক বাফারগুলিতে যুক্ত করা হয়েছে (ইনোডাব_বফার_পুল_সাইজ + কী_বফার_সাইজ)। সম্মিলিত অঙ্কগুলি রিপোর্ট করা হয়। যদি সেই সম্মিলিত পরিমাণটি র‌্যামের 80% ছাড়িয়ে যায়, তখন আপনাকে সেই বাফার আকারগুলি কমিয়ে আনতে হবে। mysqltuner.pl এই ক্ষেত্রে খুব সহায়ক হবে।

যেহেতু আপনার সমস্ত ডেটা ইনোডিবি, আপনি কী_বফার_সাইজ (মাইআইএসএএম সূচকগুলির জন্য কী ক্যাশে বাফার) তৈরি করতে পারেন (আমি 64৪ এম প্রস্তাব দিই)।

ইনোডাব_বফার_পুল_সাইজের প্রস্তাবিত আকার গণনা করার জন্য আমি ডিবিএ স্ট্যাকএক্সচেঞ্জে তৈরি একটি পোস্ট এখানে

আপডেট 2011-10-15 19:55 ইডিটি

আপনি যদি জানেন যে আপনার 5 জিবি ডেটা থাকবে তবে আমার প্রথম প্রস্তাবটি ঠিক ছিল। তবে আমি একটি জিনিস যুক্ত করতে ভুলে গেছি:

[mysqld]
innodb_buffer_pool_size=5G
innodb_log_file_size=1280M

লগ ফাইলের আকার অবশ্যই InnoDB বাফার পুলের 25% হওয়া উচিত

আপডেট করা হয়েছে 2011-10-16 13:36 ইডিটি

25% নিয়ম দুটি লগ ফাইল ব্যবহারের উপর ভিত্তি করে তৈরি করা হয়েছে। একাধিক ইনোডাব লগ ফাইলগুলি ব্যবহার করা সম্ভব হলেও দুটি সাধারণত ভাল কাজ করে।

অন্যরা 25% ব্যবহার করে প্রকাশ করেছেন

তবে, সমস্ত ন্যায়সঙ্গতভাবে, মূল ইনোবেস ওয় সংস্থার কেউ বড় InnoDB বাফার পুল থাকার কারণে 25% নিয়মটি ব্যবহার না করে প্রকাশ করেছেন

স্বাভাবিকভাবেই, বিপুল পরিমাণে র‍্যাম থাকা অবস্থায় 25% নিয়ম কাজ করতে পারে না। প্রকৃতপক্ষে, কেবলমাত্র 2 টি লগ ফাইল ব্যবহারের অনুমতিপ্রাপ্ত বৃহত্তম ইনোডাব_লগ_ফিল_সাইজটি 2047 এম, লগ ফাইলের সম্মিলিত আকার 4 জি (4096 এম) এর চেয়ে কম হওয়া উচিত

কেস ইন পয়েন্ট: আমার এক নিয়োগকর্তার ক্লায়েন্টের একটি ডিবি সার্ভার রয়েছে যার সাথে 192 গিগাবাইট র‌্যাম রয়েছে। 48 জি লগ ফাইল থাকার কোনও উপায় নেই। আমি আনমোডাব লগ ফাইলের জন্য সর্বাধিক ফাইলের আকারটি ব্যবহার করি, 2047M। আমার উত্তরে @ কুইসলের মন্তব্যটি আপনাকে কেবল দুটি লগ ফাইলের মধ্যে সীমাবদ্ধ রাখতে হবে না তা উল্লেখ করে একটি লিঙ্ক দেয়। আপনার যদি এন লগ ফাইল থাকে তবে এগুলি মোট 4 জি করতে পারে না। আমার 25% নিয়মটি কেবল একটি নিখুঁত বিশ্বে রয়েছে (8 জিবি বা তারও কম ডিবি সার্ভার)।


ধন্যবাদ, আমি অবশ্যই mysqltuner.pl ব্যবহার করব। তবে, আমাকে অবশ্যই জিজ্ঞাসা করতে হবে, আমার ডাটাবেসটি এখনই খালি থাকলে script স্ক্রিপ্টটি কি সঠিক হবে? আমার কাছে সমস্ত টেবিল এবং স্কিমা সঠিকভাবে সেট আপ হয়েছে তবে সত্যিকারের কোনও ডেটা নেই। আমি 5gb উদাহরণস্বরূপ আকার হিসাবে ব্যবহার করেছি যা আমি আমার বর্তমান ডেডিকেটেড সার্ভারে ব্যবহার করব (যা একবার ডিবি এর চেয়ে বড় হয়ে গেলে আমি সম্ভবত আরও ভাল ডেডিকেটেড সার্ভারে স্যুইচ করব)। বর্তমানে ডাটাবেসটি খালি রয়েছে (এটি একেবারে নতুন সাইট যা চালু হয়নি) তবে আমি স্কেলিং ভাল-প্রবর্তন পরিচালনা করতে mysql টিউন করতে চাই।
বিলমালার্কি

আমার উত্তর আপডেট!
RolandoMySQLDBA

আমি "InnoDB বাফার পুলের 25% হতে হবে" মন্তব্য করতে চাই। কারণ এটি 100% সত্য নয়। আরও বিস্তৃত উত্তরের জন্য dev.mysql.com/doc/refman/5.0/en/… পড়ুন । পারফরম্যান্স অনুসারে, এটি ডিফল্ট থেকে আকারটি কিছুটা বাড়িয়ে তুলতে অনেক সহায়তা করে, তবে আপনাকে এটি সর্বোচ্চ করতে হবে না।
Kvisle

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