এসকিউএল সার্ভার টেম্পডিবি র‌্যাম ডিস্কে?


11

আমাদের বিক্রেতার অ্যাপ্লিকেশন ডাটাবেসটি খুব টেম্পিডবি নিবিড়।

সার্ভারটি ভার্চুয়াল (ভিএমওয়্যার) 40 টি কোর এবং 768 জিবি র‌্যাম সহ এসকিউএল 2012 এন্টারপ্রাইজ এসপি 3 চালায়।

টেম্পিডিবি সহ সমস্ত ডাটাবেস সান টায়ার 1 এসএসডি-তে রয়েছে। আমাদের কাছে 10 টি টেম্পডিবি ডেটা ফাইল রয়েছে, প্রতিটিতে 1 জিবি পূর্ব-প্রাপ্ত এবং এগুলি কখনই স্বয়ংক্রিয়ভাবে বৃদ্ধি পায় না। 70 জিবি লগ ফাইলের সাথে একই। ট্রেস পতাকা 1117 এবং 1118 ইতিমধ্যে সেট করা আছে।

sys.dm_io_virtual_file_stats গত মাসে 250 টি ঘন্টা বা 10 দিনের মধ্যে ক্রমবর্ধমান io_stall সহ টেম্পিডবি ডেটা ও লগ ফাইলগুলিতে 50 টিরওবাইট পড়তে / লিখিত দেখায়।

আমরা ইতিমধ্যে গত 2 বছরের মধ্যে বিক্রেতার কোড এবং এসপিগুলিকে টিউন করেছি।

এখন, আমরা র‌্যাম ড্রাইভে টেম্পডিবি ফাইলগুলি রাখার কথা ভাবছি যেহেতু আমাদের প্রচুর স্মৃতি রয়েছে। যেহেতু সার্ভারটি পুনরায় বুট করার সময় টেম্পিডবিটি ধ্বংস / পুনরায় বিন্যাসিত হয়, তাই এটি অস্থির মেমরির মধ্যে রাখার জন্য একটি আদর্শ প্রার্থী যা সার্ভারটি পুনরায় বুট করার সময় এটিও বন্ধ হয়ে যায়।

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

হাই অল্টপি উত্পাদন সিস্টেমগুলিতে অন্য কেউ কি তাদের টেম্পডিবি র‌্যামে লাগিয়েছে? কোন বড় অসুবিধা আছে কি? বিশেষত চয়ন বা এড়ানোর জন্য কি কোনও বিক্রেতারা আছেন?


হতে পারে আপনি বিক্রেতা খুব বেশি টেম্পডিবি ব্যবহার করছেন?
পাপারাজ্জো

@ ম্যাক্স, এই প্রশ্নটি কেবল 'টেম্পডিবির লেখায় ডিস্কে যান কিনা' এই সমস্যার একটি অংশের উত্তর দেয় .. টেম্পডিবি থেকে পড়ছেন না
ডি -_-বি

1
এসএনডি স্তরে এসএনডি ব্যবহার করা নেটওয়ার্ক ল্যাটেন্সিটির কারণে আসলে আপনার খুব বেশি সুবিধা অর্জন করছে না। এসকিউএল সার্ভারে একটি এনভিএমএসএসডি রাখুন এবং এতে টেম্পিডিবি চালান।
ম্যাক্স ভার্নন

আমি সবেমাত্র 'এনভিএম এসএসডি বনাম রামডিস্ক' গুগল করেছি এবং প্রথম ফলস্বরূপ একটি রেডডিট পোস্ট যা দাবি করে যে ter 3 গুণ বেশি গতিযুক্ত। এছাড়াও ডেটাসেন্টারে গাড়ি চালানো এবং ফলকটিতে এটি ইনস্টল করার চেয়েও সহজ :)
d -_- বি

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

উত্তর:


7

প্রথম, প্যাচ: আপনি 2012 সার্ভিস প্যাক 1 সংযোজনীয় আপডেট 10 বা ততোধিক নতুন তা নিশ্চিত করুন। এসকিউএল ২০১৪-তে, মাইক্রোসফ্ট টেম্পডিবিতে পরিবর্তন করেছে ডিস্কে লেখার জন্য কম আগ্রহী হওয়ার জন্য এবং তারা দুর্দান্তভাবে এটিকে 2012 এসপি 1 সিই 10 তে ব্যাকপোর্ট করেছে , যাতে টেম্পডিবি লেখার চাপকে অনেকটা হ্রাস করতে পারে।

দ্বিতীয়ত, আপনার বিলম্বের উপর সঠিক সংখ্যাগুলি পান। চেক sys.dm_io_virtual_file_stats আপনার TempDB ফাইলের জন্য গড় লেখার স্টল দেখতে। এটি করার জন্য আমার প্রিয় উপায়টি হ'ল:

sp_BlitzFirst @ExpertMode = 1, @Seconds = 30 /* Checks for 30 seconds */
sp_BlitzFirst @SinceStartup = 1 /* Shows data since startup, but includes overnights */

ফাইলের পরিসংখ্যান বিভাগটি দেখুন এবং দৈহিক লেখায় মনোনিবেশ করুন। যেহেতু স্টার্টআপ ডেটাটি কিছুটা বিভ্রান্তিমূলক হতে পারে কারণ এতে CHECKDB চলার সময়ও অন্তর্ভুক্ত থাকে এবং এটি আপনার টেম্পডিবিতে সত্যই হাতুড়ি দিতে পারে।

যদি আপনার গড় লেখার বিলম্বটি 3 মিটারের বেশি হয়, তবে হ্যাঁ, আপনার এসএএন-তে আপনার স্টিল স্টোরেজ থাকতে পারে, তবে এটি এখনও দ্রুত নয়।

টেম্পডিবি-র জন্য প্রথমে স্থানীয় এসএসডি বিবেচনা করুন।ভাল স্থানীয় এসএসডি (যেমন ইনটেলের পিসিআই এনভিএম কার্ডগুলি, যেগুলি আপনি বর্ণনা করছেন এমন আকারগুলিতে k 2k ডলারের অধীনে রয়েছে) আপনার অংশীদারি স্টোরেজটি অর্জনের চেয়ে কম হ'ল অত্যন্ত স্বল্পতা রয়েছে। যাইহোক, ভার্চুয়ালাইজেশনের অধীনে, এটি একটি অপূর্ণতা নিয়ে আসে: আপনি কোনও হোস্ট থেকে অন্য হোস্টে লোড বা হার্ডওয়্যার সংক্রান্ত সমস্যার প্রতিক্রিয়া জানাতে অতিথিটিকে ভিভেশন করতে পারবেন না।

সর্বশেষে একটি র‌্যাম ড্রাইভ বিবেচনা করুন।এই পদ্ধতির সাথে দুটি বড় গ্যাটাচ রয়েছে:

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

দ্বিতীয়ত, র‌্যাম ড্রাইভগুলি সফ্টওয়্যার। আমি যে লোড টেস্টিং করেছি, আমি সত্যিই ভারী টেম্পডিবি ক্রিয়াকলাপের সাথে তাদের গতির সাথে এতটা প্রভাবিত হইনি। যদি এটি এত ভারী হয় যে কোনও এন্টারপ্রাইজ-গ্রেড এসএসডি রাখতে না পারে, তবে আপনি র‍্যাম ড্রাইভ সফ্টওয়্যারটিও কর আদায় করতে যাচ্ছেন। লাইভে যাওয়ার আগে আপনি এই পরীক্ষাটি ভারীভাবে লোড করতে চাইবেন - বিভিন্ন সূচীতে একসাথে সূচকগুলি পুনঃনির্মাণের মতো জিনিসগুলি চেষ্টা করে দেখুন, সমস্ত সাজান-ইন-টেম্পিডবি ব্যবহার করে।


1

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

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