গুহাত: নীচে ভুল থাকতে পারে। আমি পাশাপাশি যেতে যেতে এই জিনিসগুলির অনেক কিছুই শিখছি, সুতরাং এটি একটি চিমটি লবণ দিয়ে নিন। এটি বেশ দীর্ঘ, তবে আমরা যে প্যারামিটারগুলি নিয়ে খেলছিলাম তা কেবল আপনি পড়তে পারেন, তারপরে শেষে উপসংহারে যান।
এমন অনেকগুলি স্তর রয়েছে যেখানে আপনি এসকিউএলাইট রচনা সম্পাদনা সম্পর্কে চিন্তা করতে পারেন:
আমরা সাহসীভাবে হাইলাইট করা বিষয়গুলির দিকে চেয়েছিলাম। বিশেষ পরামিতি ছিল
- ডিস্ক লেখার ক্যাশে। আধুনিক ডিস্কগুলিতে র্যাম ক্যাশে রয়েছে যা স্পিনিং ডিস্কের সাথে ডিস্ক রাইটিং অনুকূল করে তোলে। এই সক্ষম করার সাথে ডেটা আউট-অফ-অর্ডার ব্লকে লেখা যেতে পারে, তাই যদি কোনও ক্রাশ ঘটে তবে আপনি আংশিক লিখিত ফাইলটি দিয়ে শেষ করতে পারেন। Hdparm -W / dev / ... এর সাথে সেটিংসটি পরীক্ষা করে দেখুন এবং এটি hdparm -W1 / dev / ... দিয়ে সেট করুন (এটি চালু করতে, এবং -ডাব্লু 0 এটি বন্ধ করতে)।
- বাধা = (0 | 1)। "আপনি যদি বাধা = 0 দিয়ে চালনা করেন তবে ডিস্ক রাইটিং ক্যাচিং সক্ষম করে না" বলে অনলাইনে প্রচুর মন্তব্য করা হয়েছে। আপনি বাধাগুলির একটি আলোচনা http://lwn.net/Articles/283161/ এ সন্ধান করতে পারেন
- ডেটা = (জার্নাল | অর্ডার | লিখনব্যাক)। এই বিকল্পগুলির বিবরণের জন্য http://www.linuxtopia.org/HowToGuides/ext3 জার্নালিংফাইসিসটেম html দেখুন ।
- কমিট = এন। প্রতিটি এন সেকেন্ডে সমস্ত ডেটা এবং মেটাডেটা সিঙ্ক করতে ext3 কে বলে (ডিফল্ট 5)।
- এসকিউএলাইট প্রগমা সিঙ্ক্রোনাস = চালু | বন্ধ। চালু থাকলে, এসকিউএলাইট নিশ্চিত করবে যে একটি লেনদেন চালিয়ে যাওয়ার আগে "ডিস্কে লিখিত" আছে। এটিকে বন্ধ করা অপরিহার্যভাবে অন্যান্য সেটিংসকে অপ্রাসঙ্গিক করে তোলে।
- এসকিউএলাইট প্রগমা ক্যাশে_সাইজ করুন। এটি ইন-মেমরি ক্যাশেটির জন্য এসকিউএলাইট কত মেমরি ব্যবহার করবে তা নিয়ন্ত্রণ করে। আমি দুটি মাপ চেষ্টা করেছিলাম: একটি যেখানে পুরো ডিবি ক্যাশে মাপসই হয় এবং অন্যটি যেখানে ক্যাশে সর্বোচ্চ ডিবি আকারের অর্ধেক।
Ext3 ডকুমেন্টেশনে ext3 বিকল্পগুলি সম্পর্কে আরও পড়ুন ।
আমি এই পরামিতিগুলির কয়েকটি সংমিশ্রণে পারফরম্যান্স পরীক্ষা চালিয়েছি। আইডিটি একটি দৃশ্যের নম্বর, নীচে উল্লেখ করা হয়েছে।
আমি দৃশ্যপট 1 হিসাবে আমার মেশিনে ডিফল্ট কনফিগারেশনটি দিয়ে দৌড়াতে শুরু করলাম পরিস্থিতি 2 হ'ল আমি "নিরাপদ" হিসাবে ধরে নিয়েছি এবং তারপরে উপযুক্ত / অনুরোধযুক্ত বিভিন্ন সংমিশ্রণের চেষ্টা করেছি। আমি যে মানচিত্রটি ব্যবহার করে শেষ করেছি তা দিয়ে বোঝা এটি সম্ভবত সবচেয়ে সহজ:
আমি একটি পরীক্ষার স্ক্রিপ্ট লিখেছিলাম যা কেবলমাত্র INTEGER, কেবলমাত্র আইডি কলাম (আইডি কলাম সহ) বা মিশ্রিত টেবিলগুলিতে সন্নিবেশ, আপডেট এবং মুছে ফেলা সহ প্রচুর লেনদেন চালিয়েছিল। উপরের প্রতিটি কনফিগারেশনে আমি এটি বেশ কয়েকবার চালিয়েছি:
নীচের দুটি দৃশ্য হ'ল # 6 এবং # 17, যা "প্রগমা সিঙ্ক্রোনাস = অফ" রয়েছে, তাই উদ্বেগজনক যে তারা দ্রুততম ছিল। তিনটির পরবর্তী ক্লাস্টারটি হ'ল # 7, # 11 এবং # 19। এই তিনটি উপরের "কনফিগারেশন মানচিত্রে" নীল রঙে হাইলাইট করা হয়েছে। মূলত কনফিগারেশনটি হ'ল ডিস্ক লিখন ক্যাশে অন, বাধা = 0 এবং ডেটা 'জার্নাল' ব্যতীত অন্য কোনও কিছুতে সেট করা। 5 সেকেন্ড (# 7) এবং 60 সেকেন্ডের (# 11) এর মধ্যে প্রতিশ্রুতি পরিবর্তন করা কিছুটা তাত্পর্যপূর্ণ বলে মনে হচ্ছে। এই পরীক্ষাগুলিতে ডেটা = অর্ডার এবং ডেটা = লিটারব্যাকের মধ্যে কোনও পার্থক্য থাকলে খুব বেশি হবে বলে মনে হয় না, যা আমাকে অবাক করে দেয়।
মিশ্র আপডেট পরীক্ষা মধ্যম শিখর হয়। এই পরিস্থিতিতে আরও স্পষ্টভাবে ধীরগতির পরিস্থিতিতে একটি ক্লাস্টার রয়েছে। এগুলি হ'ল ডেটা = জার্নাল সহ । অন্যথায় অন্যান্য পরিস্থিতিতে খুব একটা নেই।
আমার আরও একটি টাইমিং টেস্ট ছিল, যা বিভিন্ন ধরণের সংমিশ্রণগুলিতে সন্নিবেশ, আপডেট এবং মুছার আরও বিজাতীয় মিশ্রণ করেছিল। এগুলিতে অনেক বেশি সময় লেগেছে, যে কারণে আমি এটি উপরের চক্রান্তে অন্তর্ভুক্ত করিনি:
এখানে আপনি দেখতে পাচ্ছেন যে রাইডব্যাক কনফিগারেশন (# 19) আদেশযুক্তদের (# 7 এবং # 11) এর চেয়ে কিছুটা ধীর। আমি প্রত্যাশা করেছি রাইটব্যাকটি কিছুটা দ্রুত হবে, তবে সম্ভবত এটি আপনার লেখার নিদর্শনগুলির উপর নির্ভর করে, বা সম্ভবত আমি এখনও কেবলমাত্র এক্সট3 তে যথেষ্ট পড়িনি :-)
বিভিন্ন পরিস্থিতিতে আমাদের প্রয়োগ দ্বারা পরিচালিত ক্রিয়াকলাপগুলির কিছুটা প্রতিনিধি ছিল। পরিস্থিতিতে একটি সংক্ষিপ্ত তালিকা বাছাইয়ের পরে আমরা আমাদের কিছু স্বয়ংক্রিয় পরীক্ষার স্যুটগুলির সাথে টাইমিং পরীক্ষা চালিয়েছি। তারা উপরের ফলাফলের সাথে সঙ্গতিপূর্ণ ছিল।
উপসংহার
- কমিট পরামিতি, সামান্য পার্থক্য করতে করলো তাই আমরা 5s এ যাব করছি যে।
- আমরা ডিস্ক রাইটিং ক্যাশে অন, বাধা = 0 , এবং ডেটা = অর্ডার সহ যাচ্ছি । আমি অনলাইনে এমন কিছু জিনিস পড়েছি যা ভেবেছিল এটি একটি খারাপ সেটআপ, এবং অন্যেরা মনে হয় যে এটি অনেক পরিস্থিতিতে ডিফল্ট হওয়া উচিত। আমার অনুমান সবচেয়ে গুরুত্বপূর্ণ যে আপনি কোন ট্রেড-অফ করছেন তা জেনে আপনি একটি অবগত সিদ্ধান্ত গ্রহণ করুন।
- আমরা এসকিউএলাইটে সিঙ্ক্রোনাস প্রাগমা ব্যবহার করতে যাচ্ছি না।
- এসকিউএলাইট ক্যাশে_সাইজ প্রগমা সেট করা যাতে ডিবি কিছু অপারেশনে মেমরির উন্নত পারফরম্যান্সে ফিট করে, যেমনটি আমরা প্রত্যাশা করেছিলাম।
- উপরের কনফিগারেশনটির অর্থ আমরা কিছুটা বেশি ঝুঁকি নিচ্ছি। আংশিক লেখায় ডিস্ক ব্যর্থতার ঝুঁকি হ্রাস করতে আমরা এসকিউএলাইট ব্যাকআপ এপিআই ব্যবহার করব : প্রতি এন মিনিট পরে একটি স্ন্যাপশট নেওয়া এবং শেষ এমকে প্রায় রেখে দেওয়া। পারফরম্যান্স পরীক্ষা চালানোর সময় আমি এই এপিআইটি পরীক্ষা করেছি এবং এটি আমাদের এগিয়ে যাওয়ার আত্মবিশ্বাস দিয়েছে।
- যদি আমরা আরও বেশি চাইতাম তবে আমরা কার্নেলের সাথে মাকের দিকে নজর দিতে পারি, তবে সেখানে না গিয়ে আমরা যথেষ্ট পরিমাণে উন্নতি করেছি।
বিভিন্ন টিপস এবং পয়েন্টারগুলির জন্য @ হুইজেনসকে ধন্যবাদ।