আমরা .NET 4.0 এ বিকাশ করেছি এমন একটি ওলটিপি সিস্টেম লোড পরীক্ষায় ব্যস্ত রয়েছি এবং পিছনে এসকিউএল সার্ভার 2008 আর 2 চালায়। সিস্টেমটি এসকিউএল সার্ভার পরিষেবা ব্রোকার সারিগুলি ব্যবহার করে, যা খুব পারফরম্যান্সযুক্ত তবে আমরা প্রক্রিয়াজাতকরণের সময় একটি অদ্ভুত প্রবণতাটি অনুভব করছি।
এসকিউএল সার্ভার প্রক্রিয়াটি 1 মিনিটের জন্য ফোসকা হারে অনুরোধ করে, এরপরে ডিস্ক রাইটিং ক্রিয়াকলাপের 20 ডলার বৃদ্ধি পায়। নিম্নলিখিত গ্রাফটি সমস্যার চিত্র তুলে ধরেছে।
Yellow = Transactions per second
Blue = Total CPU usage
Red = Sqlsrv Disk Write Bytes/s
Green = Sqlsrv Disk Read Bytes/s
সমস্যার সমাধানের সময়, আমরা বিন্যাসে কোনও উল্লেখযোগ্য পরিবর্তন ছাড়াই নিম্নলিখিতগুলি চেষ্টা করেছি:
- বন্ধ করা এসকিউএল সার্ভার এজেন্ট।
- প্রায় প্রতিটি চলমান প্রক্রিয়া হত্যা (কোন এ / ভি, এসএসএমএস, ভিএস, উইন্ডোজ এক্সপ্লোরার ইত্যাদি)
- অন্যান্য সমস্ত ডাটাবেস সরানো হয়েছে।
- সমস্ত কথোপকথন টাইমার অক্ষম করেছে (আমরা কোনও ট্রিগার ব্যবহার করি না)।
- কোনও সাধারণ / অশোধিত টেবিল পর্যবেক্ষণ ডিজাইনে বার্তা সারি চালিত পদ্ধতির থেকে সরে গেছে।
- হালকা থেকে ভারী পর্যন্ত বিভিন্ন লোড ব্যবহার করা হয়।
- সমস্ত অচল স্থির।
দেখে মনে হচ্ছে এসকিউএল সার্ভার এটির ক্যাশে তৈরি করছে এবং নির্দিষ্ট সময় ভিত্তিক বিরতিতে ডিস্কে লিখছে, তবে এই তত্ত্বটি সমর্থন করার জন্য আমি অনলাইনে কিছুই খুঁজে পাচ্ছি না।
এর পরে, আমি সমস্যার প্রতিলিপি করতে পারি কিনা তা দেখার জন্য আমি আমাদের উত্সর্গীকৃত পরীক্ষার পরিবেশে সমাধানটি সরিয়ে নেওয়ার পরিকল্পনা করছি। অন্তর্বর্তীকালীন যে কোনও সহায়তা প্রশংসিত হবে।
আপডেট 1 অনুরোধ অনুসারে, এখানে এমন একটি গ্রাফের সাথে রয়েছে যা চেকপয়েন্ট পৃষ্ঠাগুলি / সেকেন্ড , পৃষ্ঠা আয়ু প্রত্যাশা এবং কিছু ডিস্ক ল্যাটেন্সি কাউন্টার অন্তর্ভুক্ত করে।
দেখা যাচ্ছে যেন চেকপয়েন্ট (হালকা নীল লাইন) হ'ল আমরা যে পর্যবেক্ষণ হ্রাস করেছি তার কার্যকারিতা (হলুদ রেখা) ^
প্রক্রিয়া চলাকালীন ডিস্কের বিলম্বতা তুলনামূলকভাবে সামঞ্জস্যপূর্ণ এবং পৃষ্ঠাটির আয়ুটির কোনও উল্লেখযোগ্য প্রভাব আছে বলে মনে হয় না। আমরা এসকিউএল সার্ভারের জন্য উপলব্ধ র্যামের পরিমাণও সামঞ্জস্য করেছি, যার বড় প্রভাব নেই। থেকে পুনরুদ্ধারের মডেল পরিবর্তন করা SIMPLE
থেকে FULL
এছাড়াও প্রণীত সামান্য পার্থক্য।
আপডেট 2 নিম্নরূপে "পুনরুদ্ধার ব্যবধান" পরিবর্তন করে আমরা চেকপয়েন্টগুলি যে বিরতিতে ঘটে তা হ্রাস করতে পরিচালিত করেছি:
EXEC sp_configure 'show advanced options',1
GO
RECONFIGURE
GO
EXEC sp_configure 'recovery interval', '30'
GO
RECONFIGURE
GO
EXEC sp_configure 'show advanced options',0
GO
RECONFIGURE
আমি নিশ্চিত না যে এটি খারাপ অভ্যাস কিনা?
FULL
বা BULK_LOGGED
, এটা এখনও আচরণ করবে যেমন যদি এটা আছে SIMPLE
যতক্ষণ না আপনি একটি সম্পূর্ণ ব্যাকআপ নিতে।