স্থিতিস্থাপকতা এবং পারফরম্যান্সের মধ্যে সর্বদা বাণিজ্য বন্ধ হয়ে যায়।
Ext4 এ মাইএসকিউএল দিয়ে বাধা = 1 ডিফল্ট প্রকৃতপক্ষে একটি ধীরগতির কারণ ঘটায়, তবে প্রথম পদক্ষেপটি জার্নালিং অক্ষম করা বা ডেটা = লিখনব্যাক চালু করা উচিত নয়।
প্রথমত, যদি স্থিতিস্থাপকতা উচ্চ গুরুত্ব পায় তবে একটি ব্যাটারি ব্যাকড RAID অবশ্যই এটির জন্য উপযুক্ত।
আমি যে মাউন্ট অপশনগুলি বেছে নিয়েছি, বিশেষত ব্যাটারিবিহীন ব্যাকযুক্ত RAID এ:
/dev/mapper/vg-mysql--data /var/lib/mysql/data ext4 defaults,noatime,nodiratime,barrier=1,data=ordered 0 0
এটি ইচ্ছাকৃতভাবে ডেটা = লিটারব্যাক ব্যবহার করছে না কারণ আমি ফাইল সিস্টেমের দুর্নীতির ঝুঁকি নিতে চাই না যার ফলে "ক্র্যাশ এবং জার্নাল পুনরুদ্ধারের পরে ফাইলগুলিতে পুরানো ডেটা উপস্থিত হতে পারে" (উদ্ধৃতিটি এসেছে man mount
)।
I / O সম্পর্কিত সেটিংসের আশেপাশে সম্পূর্ণরূপে নির্ভরযোগ্যতার জন্য my.cnf এ আদর্শ কনফিগারেশন হ'ল:
[mysqld]
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
পারফরম্যান্স বাড়াতে আমি ট্রেড-অফগুলির নিম্নলিখিত ক্রমটি বেছে নিয়েছি:
sync_binlog = 0
: এটিই প্রথম মাইএসকিউএল কনফিগারেশন যা আমি সম্পূর্ণ দৃili়তা থেকে দূরে সরে যাই। এর কারণ হ'ল এটি উল্লেখযোগ্য পারফরম্যান্সের উন্নতি দেয়, বিশেষত যেখানে binlog_format=row
(দুর্ভাগ্যক্রমে জিরার জন্য প্রয়োজনীয়)। আমি ক্লাস্টারে পর্যাপ্ত মাইএসকিউএল প্রতিলিপি ব্যবহার করছি যে যদি বাইনলোগটি কোনও ক্ষয়ক্ষতির দৃশ্যের দ্বারা দূষিত হয়ে যায় তবে আমি অন্য প্রতিরূপ থেকে বাইনারি অনুলিপি করতাম।
innodb_flush_log_at_trx_commit = 2
: সম্পূর্ণ এসিডি মেনে চলার জন্য 1 এর মান প্রয়োজন হলেও 2 "এর মান সহ প্রতিটি কমিটের সময় লগ বাফারটি ফাইলটিতে লেখা হয়, তবে এতে ফ্লাশ টু ডিস্ক অপারেশন করা হয় না However তবে, ফ্লাশিং লগ ফাইল প্রতি সেকেন্ডে একবারেও স্থান নেয় যখন মান 2 হয় তবে নোট করুন যে প্রক্রিয়া শিডিয়ুলিংয়ের কারণে প্রতি সেকেন্ডে একবারে ফ্লাশিং প্রতি সেকেন্ডে 100% হওয়ার নিশ্চয়তা দেয় না। " (মাইএসকিউএল ডক্স থেকে উদ্ধৃতি)
- ব্যবহারের জন্য মাউন্ট বিকল্পগুলি আপডেট করুন
data=writeback
। মনে রাখবেন যে এটি আপনার মূল ফাইল সিস্টেম হলে আপনাকে কার্নেল কমান্ড লাইন বিকল্পটিও পাস করতে হবে। আমি কোডারওয়ালে এটিতে কয়েকটি পদক্ষেপ একসাথে রেখেছি ।
- বিভিন্ন মান পরীক্ষা
innodb_flush_method
। O_DIRECT কে কিছু কাজের চাপে পারফরম্যান্স উন্নত করতে দেখানো হয়েছে, তবে এটি আপনার পরিবেশে কাজ করবে তা দেওয়া হয়নি।
- SSDs এ আপগ্রেড করুন, যে ক্ষেত্রে আপনার কাছে বৃদ্ধি করতে চাইবেন
innodb_io_capacity
সেটিংস যেমন, এবং সুর innodb_adaptive_flushing
, innodb_read_io_threads
, innodb_write_io_threads
, innodb_purge_threads
, এবং অন্যান্য সম্ভাব্য সেটিংস।