16 জিবি র‌্যাম সহ কোয়াডকোর মেশিনে মাইএসকিউএল থেকে কীভাবে সর্বাধিক উপার্জন করা যায়?


10

আমি বৈজ্ঞানিক ডেটা বিশ্লেষণের জন্য আমার ওয়ার্কস্টেশনে একটি মাইএসকিউএল 5.5 সার্ভার চালাচ্ছি এবং এর থেকে পারফরম্যান্স-ভিত্তিতে সবচেয়ে বেশি পেতে মাইএসকিউএলকে কীভাবে কনফিগার করতে হবে তা অবাক করে দিয়েছি। যে ধরণের ক্যোয়ারী আমি সাধারণত চালিত করি সেগুলিতে 10-20 টেবিলের সাথে যুক্ত হয় এবং বেশ দীর্ঘ সময় ধরে চলতে পারে, এক থেকে কয়েক মিনিট মোটেই ব্যতিক্রম নয়। একই সময়ে খুব কম ব্যবহারকারীরই ডাটাবেস অ্যাক্সেস করে (সর্বোচ্চ 5 জন)। আমি একটি 2.2 গিগাহার্টজ ডুয়াল কোর এবং 4 জিবি র‌্যাম সহ একটি লেনোভো থিঙ্কপ্যাড টি 61 থেকে সার্ভারটি হ্যান্ড-নির্বাচিত উপাদানগুলি সহ নিম্নলিখিত ব্র্যান্ড-নতুন মেশিনে স্থানান্তরিত করেছি:

  • ইন্টেল i7 3770, 4x 3.4 গিগাহার্জ (চলমান @ 4x3.7 গিগাহার্টজ)
  • জেড 77 চিপসেট
  • ডিডিআর 3 1600 র‌্যামের 16 জিবি
  • উইন্ডোজ 7 প্রো 64-বিট
  • উইন্ডোজ এবং মাইএসকিউএল সার্ভারটি একটি ইন্টেল 520 সিরিজের এসএসডি ড্রাইভে চালিত হয়।

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

এখন আমার বর্তমান মাইএসকিউএল সেটিংসে: প্রথমে আমার উল্লেখ করা উচিত যে আমি মাইআইএসএএম থেকে ইনডোডে চলে এসেছি অনেক আগে।

আমার কিছু.in.ini টুইটগুলি (যেমন ডিফল্ট সেটিংস থেকে প্রস্থান):

# Maximum size for internal (in-memory) temporary tables. If a table
# grows larger than this value, it is automatically converted to disk
# based table This limitation is for a single table. There can be many
# of them.
#tmp_table_size=35M
tmp_table_size=4000M
max_heap_table_size=4000M

# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
# row data. The bigger you set this the less disk I/O is needed to
# access data in tables. On a dedicated database server you may set this
# parameter up to 80% of the machine physical memory size. Do not set it
# too large, though, because competition of the physical memory may
# cause paging in the operating system.  Note that on 32bit systems you
# might be limited to 2-3.5G of user level memory per process, so do not
# set it too high.
#innodb_buffer_pool_size=96M
innodb_buffer_pool_size=800M

general-log
expire_logs_days = 60
general_log_file = "F:/my_query_mysql.log"
log-output = TABLE
optimizer_search_depth = 0 #meant to cure the "statistics state" bug in some queries

আমি জানতে চাইছি যে কেউ উপরে বর্ণিত নম্বরগুলিতে বা এমনকি আমার জানিনা এমন আরও সেটিংস পরিবর্তন করার পরামর্শ দিবে কিনা।

আমি কোনও সহায়ক মন্তব্য প্রশংসা করব।

স্টিভ

সম্পাদনা: আমার 10 টি টেবিলের জুড়ে জড়িত জড়িত দুটি প্রশ্ন রয়েছে এবং সেগুলি আমার লেনোভো নোটবুক এবং নতুন পিসিতে চালিয়েছি। ক্যোয়ারী # 1 ল্যাপটপে 9m11 বনাম নতুন মেশিনে 3 মি 36 সেকেন্ড নিয়েছে; ক্যোয়ারী # 2 ল্যাপটপে 48.5s বনাম ওয়ার্কস্টেশনটিতে 22.5s নিয়েছে। সুতরাং মৃত্যুদন্ডের গতি প্রায় 2-2.5 ফ্যাক্টর দ্বারা উন্নত হয়েছিল। ওয়ার্কস্টেশনে, র‌্যামের 50% ব্যবহার করা হয়নি। চারটি কোর জুড়ে গড় সিপিইউ বোঝা (উইন্ডোজ টাস্ক ম্যানেজারের হিসাবে রিপোর্ট করা হয়েছে) প্রায় 13% ছিল। প্রতি-কোর ভিত্তিতে লোড (কোর টেম্পের হিসাবে রিপোর্ট করা হয়েছে) এক কোরের জন্য প্রায় 25-40% ছিল, যখন এটি অন্যদের জন্য <= 10% ছিল, ইঙ্গিত করে যে মাইএসকিউএল একক কোয়ের জন্য একাধিক কোর ব্যবহার করে না does ।


দয়া করে আপনার সার্ভার লোডটি দেখান, সুতরাং মেমোরি, আইও, সিপিইউ বোঝা ইত্যাদি পরীক্ষা করুন

আমি কয়েকটি পরীক্ষা চালাব এবং উইন্ডোজ টাস্ক ম্যানেজারের যা বলা আছে তা ফেরত

আপনার সমস্যাটি কোথায় তা প্রথম ইঙ্গিতের জন্য এটি যথেষ্ট।

সবেমাত্র কিছু পরিসংখ্যান যুক্ত হয়েছে।

2
উপরন্তু আপনার কাছে Percona পেতে উইজার্ড এ "সুপারিশ" আপনার ডাটাবেজ সার্ভারের জন্য সেটিংস চেষ্টা করে দেখতে পারেন tools.percona.com/wizard
স্টিফেন Senkomago Musoke

উত্তর:


5

যেহেতু আপনি মাইএসকিউএল 5.5 চালাচ্ছেন, আপনি একাধিক কোর অ্যাক্সেসের জন্য InnoDB কনফিগার করতে বিবেচনা করতে পারেন

আপনার ব্যবহার করা উচিত সেটিংস এখানে

ইনোডব_থ্রেড_কেনসিটি ইনোডিবি খোলার মতো সামঞ্জস্যপূর্ণ থ্রেডের সংখ্যার উপরের সীমাটি সেট করে। এটির জন্য সেরা গোলাকার নম্বরটি (সিপিইউগুলির 2 এক্স সংখ্যা) + ডিস্কের সংখ্যা। আপডেট : যেমনটি আমি পেরকোনা এনওয়াইসি সম্মেলন থেকে প্রথম শিখেছি, আপনার পরিবেশটি যে পরিবেশে চলছে তার সর্বাধিক সংখ্যক থ্রেড খুঁজতে ইনোডিবি স্টোরেজ ইঞ্জিনকে সতর্ক করার জন্য আপনার এটিকে 0 তে সেট করা উচিত।

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

ইনোডব_কমিট_ কনকুরেন্সি প্রতিশ্রুতিবদ্ধ হতে পারে এমন সমবর্তী লেনদেনের সংখ্যা সেট করে। যেহেতু ডিফল্ট 0 হয় তাই এটি সেট না করে কোনও সংখ্যক লেনদেন একই সাথে কমিট করার অনুমতি দেয়।

ইনডোডবি_থ্রেড_স্লিপ_ডিলে ইনোডিবি ক্যুতে প্রবেশের আগে একটি ইনোডিবি থ্রেড সুপ্ত হতে পারে মিলসেকেন্ডের সংখ্যা নির্ধারণ করে। ডিফল্ট 10000 (10 সেকেন্ড)।

ইনোডব_ড্রেড_ও_থ্রেডস এবং ইনানোডব_উইটার_আইও_থ্রেডস (মাইএসকিউএল 5.1.38 উভয় থেকেই) পড়া এবং লেখার জন্য নির্দিষ্ট সংখ্যক থ্রেড বরাদ্দ করে। ডিফল্ট 4 এবং সর্বোচ্চ 64 হয়।

ইনোডাব_প্রিলিকেশন_দেলে কোনও দাসের উপর থ্রেড বিলম্ব চাপিয়েছে ইনোডাব_থ্রেড_কেন্দ্রিয়ায় পৌঁছেছে।

এখানে মাইএসকিউএল 5.5-এ আমার পূর্ববর্তী পোস্টগুলি রয়েছে এবং ইনোডিবি-র জন্য একাধিক কোর সক্রিয় করা হচ্ছে


2

পারকোনা- শীর্ষস্থানীয় মাইএসকিউএল পরামর্শদাতা একটি মাইএসকিউএল কনফিগারেশন উইজার্ড সরবরাহ করে । এটি আপনাকে my.cnf/my.iniআপনার সিস্টেম কনফিগারেশনের উপর নির্ভর করে কনফিগার করতে দেয় ।

এছাড়াও পারকোনার লোকেরা " হাই পারফরম্যান্স মাই এসকিউএল " নামে একটি বই প্রকাশ করেছে । তৃতীয় সংস্করণটি সম্প্রতি প্রকাশিত হয়েছিল এবং দুর্দান্ত বিবরণে টিউনিংয়ের কভার করেছে।


এই মানগুলি কি তারা ভাল পারফরম্যান্সের জন্য পরামর্শ দেয়, বা আমি কী প্রবেশ করি তা কেবল থুতু দেয় না?
ওপেন কোডারএক্স

1

মেমোরির ব্যবহার: দেখুন http://mysql.rjweb.org/doc.php/ মেমোরি (বেশিরভাগ টিউনেবলগুলি এতে যথেষ্ট পার্থক্য করবে না।)

সর্বোচ্চ_হ্যাপ_সেবিকা_ আকার = 4000 এম বিপজ্জনকভাবে উচ্চ! যদি 4 জন ব্যবহারকারীর এরকম প্রয়োজন হয়, আপনি র‌্যামের বাইরে চলেছেন এবং অদলবদল করতে পারেন। অদলবদল কার্যত যে কোনও কিছুর চেয়ে পারফরম্যান্সকে ব্যথা করে।

কয়েক সেকেন্ডের বেশি সময় নেওয়া প্রশ্ন: উন্নতির জন্য সেগুলি অধ্যয়ন করা উচিত; দয়া করে শো টেবিল সরবরাহ করুন; টেবিল অবস্থা দেখান; ব্যাখ্যা নির্বাচন করুন


0

আপনি ওটগার বিকল্পগুলিও বিবেচনা করতে পারেন। যেমন ফ্রিবিএসডি-তে পোস্টগ্রিএসকিউএল। তবে উইন্ডোজ থেকে লিনাক্সে স্যুইচ করা আপনার কর্মক্ষমতা জোরদার করবে।

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