মাইএসকিউএল: আমি কীভাবে আমার "সর্বোচ্চ সম্ভাব্য মেমরির ব্যবহার" পেতে পারি?


16

স্মৃতিশক্তি ফুরিয়ে যাওয়ার ফলে আমি সম্প্রতি থ্র্যাশ করতে সমস্যা পেয়েছি। (আমার ভিপিএসের মোট 256M আছে)

আমি মাইএসকিউএল টিউনটি mysqltuner.pl ব্যবহার করে টিউন করার চেষ্টা করছি, এবং নিম্নলিখিত ফলাফলগুলি পেতে:

-------- সাধারণ পরিসংখ্যান ---------------------------------------- ----------
[-] মাইএসকিউএলটিউনার স্ক্রিপ্টের জন্য এড়িয়ে যাওয়া সংস্করণ চেক
[ওকে] বর্তমানে সমর্থিত মাইএসকিউএল সংস্করণ 5.0.51a-3ubuntu5.4-লগ চলছে
[ঠিক আছে] -৪-বিট আর্কিটেকচারে অপারেটিং

-------- স্টোরেজ ইঞ্জিনের পরিসংখ্যান --------------------------------------- ----
[-] স্থিতি: + সংরক্ষণাগার -বিডিবি-সংশ্লেষিত -আইএনএনডিবি -আইএসএএম -ND বিবিসিটার 
[-] মাইআইএসএএম টেবিলগুলিতে ডেটা: 114 এম (টেবিল: 454)
[!!] মোট খণ্ডিত টেবিলগুলি: 34

-------- কর্মক্ষমতা বৈশিষ্ট্যের মান ---------------------------------------- ---------
[-] আপ আপ: 40 সেকেন্ড (570 কিউ [14.250 কিউপিএস], 23 সংযোগ, টিএক্স: 154 কে, আরএক্স: 23 কে)
[-] পঠন / রচনা: 100% / 0%
[-] মোট বাফার: 338.0 এম গ্লোবাল + 2.7 এম প্রতি থ্রেড (20 সর্বাধিক থ্রেড)
[!!] সর্বাধিক সম্ভাব্য মেমরির ব্যবহার: 392.9M (ইনস্টল হওয়া র‌্যামের 153%)
[ঠিক আছে] ধীর প্রশ্নগুলি: 0% (5/570)
[ঠিক আছে] উপলব্ধ সংযোগগুলির সর্বাধিক ব্যবহার: 15% (3/20)
[!!] কী বাফার আকার / মোট মাইআইএসএএম সূচি: 8.0 এম / 9.4 এম
[!!] মূল বাফার হিট রেট: 57.1% (7 ক্যাশে / 3 পঠিত)
[ঠিক আছে] ক্যোয়ারী দক্ষতা অনুসন্ধান করুন: 21.9% (7 ক্যাশেড / 32 টি নির্বাচিত)
[ঠিক আছে] ক্যোয়ারি ক্যাশে প্রতিদিন প্রুনে: 0
[ঠিক আছে] অস্থায়ী সারণীগুলির জন্য প্রয়োজনীয় সাজানো: 0% (0 টি অস্থায়ী প্রকার / 1 প্রকার)
[ঠিক আছে] ডিস্কে অস্থায়ী টেবিল তৈরি হয়েছে: 0% (ডিস্কে 0/32 মোট)
[ঠিক আছে] থ্রেড ক্যাশে হিট রেট: 86% (3 টি তৈরি / 23 সংযোগ)
[ঠিক আছে] সারণী ক্যাশে হিট রেট: 26% (128 খোলা / 484 খোলা)
[ঠিক আছে] ফাইলের সীমা খুলুন: 25% (259/1 কে)
[ঠিক আছে] সারণী লকগুলি অবিলম্বে অর্জিত: 100% (তাত্ক্ষণিক 499 টি লক)

-------- প্রস্তাবনাগুলি ----------------------------------------- ------------
সাধারণ সুপারিশ:
    উন্নত পারফরম্যান্সের জন্য টেবিলগুলিকে ডিফ্র্যাগমেন্ট করতে অপ্টিমাইজ টেবিলটি চালান
    মাইএসকিউএল গত 24 ঘন্টার মধ্যে শুরু হয়েছিল - সুপারিশগুলি ভুল হতে পারে
    সিস্টেমের স্থায়িত্বের জন্য আপনার সামগ্রিক মাইএসকিউএল মেমরির পদচিহ্ন হ্রাস করুন
চলকগুলি সামঞ্জস্য করতে:
  *** মাইএসকিউএল এর সর্বাধিক মেমরির ব্যবহার বিপজ্জনকভাবে উচ্চ
  *** মাইএসকিউএল বাফার ভেরিয়েবলগুলি বাড়ানোর আগে র‌্যাম যুক্ত করুন ***
    কী_বফার_ সাইজ (> 9.4 এম)

তবে আমি কীভাবে সর্বাধিক স্মৃতি ব্যবহার বন্ধ করব সে সম্পর্কে কিছুটা বিভ্রান্তি বোধ করছি? এটি কী_বফার এবং সর্বোচ্চ_সংযোগের উপর ভিত্তি করে বলে মনে হচ্ছে, তবে এতে আরও কিছু যুক্ত থাকতে হবে?

my.cnf:

কী_বফার = 8 এম
সর্বোচ্চ_নয়েড_প্যাকেট = 12 এম
থ্রেড_স্ট্যাক = 128 কে
থ্রেড_ক্যাচি_ আকার = 8 8
সর্বোচ্চ_সংযোগ = 20
টেবিল_ক্যাশ = 128
tmp_table_size = 256M
সর্বোচ্চ_হ্যাপ_সেবিকা_ আকার = 256 এম
join_buffer_size = 256K
ক্যোরি_ক্যাচি_লিমিট = 8 এম
ক্যোরি_ক্যাচি_সাইজ = 64 এম

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


1
আমি মন্তব্যকারীদের পরামর্শ অনুসরণ করে এটিকে একটি যুক্তিসঙ্গত পর্যায়ে নিয়ে এসেছি- তবে আমি এখনও আগ্রহী যে এই মূল্যবোধগুলির জন্য বুদ্ধিমান বলপ্যাকগুলি কী হতে পারে? কিছু নিবন্ধ অনলাইন 64 কে ব্যবহার করে এবং অন্যরা একই মানের জন্য 512 এম প্রস্তাব দেয়!
নিক

উত্তর:


10

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

1) আপনার সর্বোচ্চ সংযোগগুলি 4 এ হ্রাস করুন (আপনি 20 এর মধ্যে 3 ব্যবহার করছেন)

2) আপনার ক্যোয়ারী ক্যাশে আরও ভাল অনুকূলিতকরণ; 8 এম সত্যই বড়, এবং 64 হ'ল মোট আপনার হিট / ছাঁটাইয়ের উপর ভিত্তি করে অনেক কিছু; একটি 4/32 কম্বো চেষ্টা করে দেখুন এটি কীভাবে চলছে। সত্যিই আমি মনে করি 2/24 কম্বো আপনার পক্ষে কাজ করবে।

3) আপনার কোনও ধরণের টেম্প টেবিলের প্রয়োজন নেই, কেন সেখানে ম্যাক্সেস_হ্যাপ_ টেবিল_সাইজ ক্রিয়া? মন্তব্য যে আউট, ডিফল্ট ব্যবহার করুন

4) আপনার কি আসলে 128 টেবিল রয়েছে? সেই টেবিল_ক্যাচটি অর্ধেক থেকে 64 বা 48 এ কেটে দেওয়ার চেষ্টা করুন

5) থ্রেড_ক্যাচি_ আকার 4 এ কমিয়ে দিন

)) টুকরো টুকরো টুকরো করতে হ্রাস করতে s টেবিলগুলি অনুকূলিত করুন

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


3
এটি একটি পুরানো প্রশ্নের পুরানো উত্তর, তবে আমি এটি উল্লেখ করতে চাই যে প্রশ্নকারীর দ্বারা পোস্ট করা মাইসকিউ্লটুনার ফলাফলের মধ্যে সার্ভারটি কেবল 40 এর দশক ধরে ছিল যা সার্ভারটি দেখতে পাবে তার বোঝা সঠিকভাবে বিচার করার পর্যাপ্ত সময় নেই । আদর্শভাবে আপনি এক দিন বা তারও বেশি সময় ধরে কয়েকবার মাইএসকিউটিউনার চালিয়ে যান, এবং তারপরে ফলাফলগুলি বিশ্লেষণ করুন। এ ছাড়া আপনার পরামর্শগুলি দৃ are়।
উদাহরণস্বরূপ

8

আমি কোনও মাইএসকিউএল গুরু নই এবং আমি এই তথ্যটি দিয়ে সমস্যাটি সনাক্ত করতে পারি না, তবে উত্স কোডের সূত্রটি অনুসন্ধান করার চেষ্টা করেছি। এটা এখানে:

server_buffers + total_per_thread_buffers * max_connections

কোথায়:

server_buffers = key_buffer_size + innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size + query_cache_size

এবং:

total_per_thread_buffers = read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + max_allowed_packet + join_buffer_size

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

শুভকামনা!


0

যদি আমি সঠিকভাবে মনে করি তবে মাইএসকিউএল টিউনার সর্বাধিক ব্যবহার অনুমানের জন্য নিম্নলিখিত সূত্রটি ব্যবহার করে:

read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size

মনে রাখবেন যে এটি 100% সঠিক নয়, এবং বাস্তবে এটি কেবলমাত্র একটি অনুমান, কারণ মাইএসকিউএল-এ নির্দিষ্ট কিছু সেটিংসের কোনও নির্ধারিত সীমা নেই।

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


0

Mysqlcalculator.com সফ্টওয়্যার ব্যবহার আপনাকে অনেক ঘন্টা বাঁচাতে পারে।

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