আমাদের এসকিউএল সার্ভার ইন্সটলে হাইপারথ্রেডিং কর্মক্ষমতা উন্নত করতে অক্ষম করবে


28

সম্পর্কিত: এসকিউএল সার্ভার এবং হাইপারথ্রেডিং সম্পর্কিত বর্তমান জ্ঞান

সম্প্রতি আমরা একটি থেকে আমাদের উইন্ডোজ 2008 R2 হলো ডাটাবেজ সার্ভারের আপগ্রেড X5470 একটি থেকে X5560 । থিওরিটি হ'ল উভয় সিপিইউতে খুব একই রকম পারফরম্যান্স রয়েছে, যদি এক্স 5560 কিছুটা দ্রুত হয়।

যাইহোক, এসকিউএল সার্ভার ২০০৮ আর 2 এর পারফরম্যান্স গত দিন বা তার চেয়ে বেশ খারাপ হয়েছে এবং সিপিইউর ব্যবহার বেশ বেশি ছিল।

পৃষ্ঠার আয়ু বিশাল, আমরা পৃষ্ঠাগুলির জন্য প্রায় 100% ক্যাশে হিট করছি, তাই স্মৃতিশক্তি কোনও সমস্যা নয়।

আমি যখন দৌড়েছি:

SELECT * FROM sys.dm_os_wait_stats 
order by signal_wait_time_ms desc

আমি পেয়েছি:

অপেক্ষা_প্রকার অপেক্ষার_টাস্কস_মাস অপেক্ষা অপেক্ষা_টাইম_ম্যাক্স সর্বোচ্চ_উইট_টাইম_এমএস সিগন্যাল_উইট_টাইম_এমএস
-------------------------------------------------- ---------- -------------------- -------------------- -------------------- --------------------
XE_TIMER_EVENT 115166 2799125790 30165 2799125065
REQUEST_FOR_DEADLOCK_SEARCH 559393 2799053973 5180 2799053973
SOS_SCHEDULER_YIELD 152289883 189948844 960 189756877
সিএক্সপ্যাকেট 234638389 2383701040 141334 118796827
SLEEP_TASK 170743505 1525669557 1406 76485386
LATCH_EX 97301008 810738519 1107 55093884
লগজিএমআর_কিউইউ 16525384 2798527632 20751319 4083713
লিখন 16850119 18328365 1193 2367880 67
PAGELATCH_EX 13254618 8524515 11263 1670113
ASYNC_NETWORK_IO 23954146 6981220 7110 1475699

(10 টি সারি প্রভাবিত)

আমিও দৌড়ে গেলাম

-- Isolate top waits for server instance since last restart or statistics clear
WITH Waits AS (
   SELECT 
        wait_type, 
        wait_time_ms / 1000. AS [wait_time_s],
        100. * wait_time_ms / SUM(wait_time_ms) OVER() AS [pct],
        ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS [rn]
FROM sys.dm_os_wait_stats
WHERE wait_type NOT IN ('CLR_SEMAPHORE','LAZYWRITER_SLEEP','RESOURCE_QUEUE',
    'SLEEP_TASK','SLEEP_SYSTEMTASK','SQLTRACE_BUFFER_FLUSH','WAITFOR','LOGMGR_QUEUE',
    'CHECKPOINT_QUEUE','REQUEST_FOR_DEADLOCK_SEARCH','XE_TIMER_EVENT','BROKER_TO_FLUSH',
    'BROKER_TASK_STOP','CLR_MANUAL_EVENT','CLR_AUTO_EVENT','DISPATCHER_QUEUE_SEMAPHORE',
    'FT_IFTS_SCHEDULER_IDLE_WAIT','XE_DISPATCHER_WAIT', 'XE_DISPATCHER_JOIN'))

SELECT W1.wait_type, 
    CAST(W1.wait_time_s AS DECIMAL(12, 2)) AS wait_time_s,
    CAST(W1.pct AS DECIMAL(12, 2)) AS pct,
    CAST(SUM(W2.pct) AS DECIMAL(12, 2)) AS running_pct
FROM Waits AS W1
INNER JOIN Waits AS W2 ON W2.rn <= W1.rn
GROUP BY W1.rn, W1.wait_type, W1.wait_time_s, W1.pct
HAVING SUM(W2.pct) - W1.pct < 95; -- percentage threshold

এবং পেয়েছিলাম

অপেক্ষা_প্রকার অপেক্ষা করুন_কাল_স pct চলমান_pct
সিএক্সপ্যাকেট 554821.66 65.82 65.82
LATCH_EX 184123.16 21.84 87.66
SOS_SCHEDULER_YIELD 37541.17 4.45 92.11
পেজআইওএলএটিচএসএইচ 19018.53 2.26 94.37
FT_IFTSHC_MUTEX 14306.05 1.70 96.07

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

এক বা একাধিক দিন ধরে সার্ভারটি লোডের মধ্যে নেই। আমরা ক্যোয়ারী মৃত্যুদন্ড কার্যকর করার সাথে প্রচুর পরিমাণে বৈকল্পিকতা অনুভব করছি, সাধারণত অনেকগুলি ক্যোয়ারী ধীর বলে মনে হয় যে তারা আমাদের আগের ডিবি সার্ভারে ছিল এবং সিপিইউ সত্যই উচ্চতর।

হাইপারথ্রেডিং অক্ষম করা কি আমাদের সিপিইউ ব্যবহার হ্রাস করতে এবং থ্রুপুট বাড়িয়ে তুলতে সহায়তা করবে?


1
আরও দেখুন: ওজামোড়া.com / 2010
স্যাম

মনে রাখবেন যে CXPACKET এর অর্থ এই নয় যে প্রক্রিয়াগুলি একত্রে মার্জ হওয়ার জন্য অপেক্ষা করতে অনেক সময় আছে। CXPACKET এর অর্থ হ'ল থ্রেডটি এর প্রসেসিং শেষ করতে অন্য থ্রেডের জন্য অপেক্ষা করছে। আপনার সুনির্দিষ্ট ক্যোয়ারীটি দেখার দরকার আছে যার CXPACKET অপেক্ষা করতে একটি থ্রেড রয়েছে এবং দেখুন CXPACKET ছাড়াও অন্যান্য থ্রেডগুলি কী অপেক্ষা করছে। এটি সাধারণত আইও বা নেটওয়ার্ক হয়। উপরের আউটপুটটিতে আপনি ল্যাচগুলির জন্য অপেক্ষা করছেন এবং নির্ধারিত হচ্ছেন। কিছু ক্যোয়ারির সুর করা দরকার, বা আপনার ল্যাচগুলি কেন নেওয়া হচ্ছে তা দেখতে হবে।
mrdenny

আমাদের ক্ষেত্রে, অন্যান্য থ্রেডগুলি কেবল ক্যাশে (অতিরিক্ত প্রতি 20 মিলিয়ন লজিক্যাল রিড) পড়ছিল তাই স্যাক্সপ্যাকেট উচ্চ ছিল। আমাদের কেসটি আবার একটি পার্টিশনযুক্ত টেবিলের সাথে একটি খারাপ অ্যান্টি-সেমিজাইন ছিল যা কেবল 700 কে সারি ছিল।
ওজমোরা

@ মির্দেনি, হ্যাঁ উচ্চ ল্যাচ ওয়েটের সময়টি সম্পর্কিত আমরা এই মুহুর্তে এটি তদন্ত করছি।
স্যাম জাফরান

উত্তর:


10

আমি এখনও অনুভব করি যে আসল উত্তর অনুসারে আপনার নির্দিষ্ট কাজের চাপ পরীক্ষা করা নিশ্চিত হওয়ার একমাত্র উপায়। আপনি যখন কোনও প্রোডাকশন সিস্টেম টিউন করার চেষ্টা করছেন তখন এটি আদর্শ উত্তর নয় (সুতরাং আমি জিজ্ঞাসা করব যে যেখানে পারফরম্যান্স এবং প্রাপ্যতা উভয়ই গুরুত্বপূর্ণ এমন সিস্টেমে একটি অভিন্ন টেস্টব্যাড পাওয়া সম্ভব ছিল) তবে এটিই কেবলমাত্র আমি আরামদায়ক সঙ্গে.

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


3
দ্রষ্টব্য, আমি কমে যাইনি, আমাদের পেতে পারে এমন সমস্ত সহায়তা আমাদের দরকার, তবে আমরা কোনও প্রোডাকশন সিস্টেমে অন্ধকারে ছুরিকাঘাত এড়াতে চাই। আমি নিশ্চিত করতে চাই যে এই সেটিংটি নিয়ে খেলতে যাওয়ার আগে আমরা পর্যাপ্ত ডায়াগনস্টিক সংগ্রহ করেছি।
স্যাম জাফরান

3
আমি নিশ্চিত যে আপনি একটি প্রযোজনা সিস্টেমের সাথে 'খেলা' এড়াতে চান, একটি আদর্শ বিশ্বে আমরা সকলেই সেই কারণে উত্পাদনের অনুরূপ পরীক্ষার পরিবেশ পাব। আমি জল্পনা অনুমান করে উত্পাদন পরিবর্তন না করার সাথে একমত। যাইহোক, আমি আমার জবাব দিয়ে দাঁড়াচ্ছি: নির্দিষ্ট কাজের চাপ পরীক্ষা করা যে কোনও মোতায়েনের একটি গুরুত্বপূর্ণ অঙ্গ এবং যে কেউ আপনাকে আলাদা বলে তা একটি চার্লাতান। আমার জন্য, সমস্ত লক্ষণ এখানে হাইপারথ্রেডিংকে সমস্যা হিসাবে দেখায় তবে আমরা সারা দিন এবং সারা রাত ধরে বিষয়গুলি নিয়ে কথা বলতে পারি এবং এখনও নিশ্চিতভাবে জানার এক উপায় হতে পারে।
রব মইর

5
এখানে আপভোট করুন - আমি উত্তরের সাথে একমত সাধারণ উত্তর: হাইপারথ্রেডিং বন্ধ করুন। আরও সুনির্দিষ্ট উত্তর হ'ল: এটি নির্দিষ্টকরণের উপর নির্ভর করে এবং পরীক্ষিত হওয়া আবশ্যক।
টমটম

1
অদ্ভুতভাবে যথেষ্ট, আমি মনে করি এটি গ্রহণের সেরা উত্তর, ম্যাক্সডপ সেটিংসের সাথে ঘন ঘন মিকিংয়ের ফলে প্রচুর সমস্যা দেখা দিতে পারে, নেহালেম সিপাস মূল ভিত্তিক জিসোনগুলির তুলনায় খুব দ্রুত এমনকি হালকা ধীর গতির গতিতেও, আমি l2 ক্যাশে যুক্তিগুলি কিছুটা খুঁজে পাই একটি লাল শিরোনামের কারণ l3 ক্যাশে এত বড়। সংযোজন হিসাবে দেখুন: ব্লগ.স্ট্যাকওভারফ্লো.com / 2010 / 10 / ডেটাবেস- আপগ্রেড , যদি কেউ 20% শতাংশের বেশি হিট / লাভ দেখছে ... এটি সম্ভবত এইচটি-র কারণে নয়।
স্যাম জাফরান

আমি @ টমটম এবং @ রবার্টের বিপরীত অভিজ্ঞতা পেয়েছি। আমি খুঁজে পেয়েছি যে এইচটি চালু করা সাধারণত বন্ধের চেয়ে 10-15% ভাল। অনুষ্ঠানটি যেখানে এটি বন্ধ করে দেওয়া কার্যকারিতার উন্নতি করে তা সত্যিই বিরল।
ব্রায়ান নোব্লাউচ

12

আমি সেটাতে একমত

  • সেরা সুপারিশ "আপনার কাজের চাপ উপর হাইপার-চেষ্টা করুন এবং দেখুন সেখানে কি ঘটছে" করা হয়। আমি টাইপ করার সাথে সাথে এখনই এটি করছি, এবং .. এটি ভাল নয়!
  • আপনার পক্ষে সর্বদা হাইপারথ্রেডিং অক্ষম করা শুরু করা উচিত, এটি সবচেয়ে নিরাপদ

দেখে মনে হচ্ছে আমাদের দুটি জিনিস সুর করা উচিত:

  1. ম্যাক্সডপ (সমান্তরালনের সর্বোচ্চ ডিগ্রি)। আমি যা পড়েছি তা ইঙ্গিত করে যে এই আনবাউন্ডেড থাকা সম্ভবত একটি খারাপ ধারণা এবং মাইক্রোসফ্ট ডকুমেন্টেশন বলে:

    এই বিকল্পটি [MAXDOP] কে একটি বৃহত্তর মান [8 এর চেয়ে বেশি] এ সেট করার ফলে প্রায়শই অযাচিত সম্পদ গ্রহণ এবং কার্যকারিতা ক্ষয় হয়।

    এর চেয়ে বড় কিছু 8সাধারণত সুপারিশ করা হয় না .. তাই আমি 4এখনই এটি সেট করে রেখেছি । শুরুতে এটি শূন্য (সীমাহীন) ছিল।

  2. সমান্তরালতার জন্য মূল্য থ্রেশহোল্ড। স্পষ্টতই এখানকার ডিফল্টটিকে 5আমি বেশ কয়েকটি এসকিউএল এমভিপি পোস্ট পেয়েছি বলে একটি সুন্দর নিম্ন ডিফল্ট হিসাবে বিবেচনা করা হয় - শিডিয়ুলার দ্বারা এমনকি কতটা সমান্তরালতা চেষ্টা করা যায় তা হ্রাস করার জন্য আমরা এটি টিউন করতে পারি ।

তবে সত্যই এগুলি অনুভূতির মতো অনুভূত হয়; আমি মনে করি আমাদের কাজের চাপের জন্য আসল সমাধান (পূর্ণ-পাঠ্য সূচী ভারী) এইচটি অক্ষম করা।


4
ম্যাক্সডোপ এইচটি-র সাথেও সমস্যা সৃষ্টি করে কারণ এটি যদি আপনি বলে থাকে যে একই সিপিইউতে দুটি থ্রেড কার্যকর করতে পারে তবে আপনি 8 টি কোর এবং 16 টি থ্রেড রেখেছেন এবং আপনার ম্যাক্সডপটি 10 ​​এ সেট করা আছে। সাধারণত লজিকাল প্রসেসরের প্রতি 1 ম্যাক্সডপ সর্বোচ্চ হওয়া উচিত। এবং একই প্রক্রিয়াটির জন্য একই সিপিইউতে দুটি থ্রেড চালানো অর্থহীন।
মার্ক হেন্ডারসন

2
@ ফার্সেকার কেবলমাত্র তখনই ঘটে যখন আপনার কাছে হাইপারথ্রেডিং-সচেতন অপারেটিং সিস্টেম নেই। 2000 এর চেয়ে নতুন উইন্ডোজ এটি সম্পর্কে সচেতন।
মিরসিয়া চিরিয়া

এটি লক্ষণীয় যে এই ম্যাক্সডপ ওভাররাইডগুলি কেবল সমস্যা তৈরি করছিল। ডিফল্টটি আমাদের পক্ষে ঠিক ছিল
স্যাম সাফ্রন

2
আনবাউন্ড না রেখে যখন এসকিউএল সার্ভারের স্ট্যান্ডার্ড সংস্করণটি 4 এর MAXDOP এ সর্বোচ্চ হয়ে যায় es এর চেয়ে আরও বেশি উপরে যাওয়ার জন্য এন্টারপ্রাইজ দরকার। আমাদের কিছু কাজের চাপ পড়েছিল যা 1 এর ম্যাক্সডপ (দ্রুত নন-এইচটি বক্স, একাধিক 8 কোর এএমডি চালাচ্ছে) এর সাথে দ্রুত গতিতে চলেছে ...
ব্রায়ান নোব্লাচ

1
@ ব্রায়ান নোব্লাচ - আমি এটি এক বছরেরও পরে জানি, তবে আমি "এসকিউএল সার্ভারের স্ট্যান্ডার্ড সংস্করণটি 4-র ম্যাক্সডপ এ সর্বোচ্চ ছাড়িয়েছি" যখন আনবাউন্ড ছেড়ে যায় "আপনি আমাকে কোনও ডকুমেন্টেশনের দিকে নির্দেশ করতে পারেন এমন কোনও সুযোগ"। আমরা বর্তমানে কর্মক্ষেত্রে MAXDOP ব্যবহার করার কথা বলছি তবে এটি কী সেট করবেন তা নিশ্চিত নয়। এর মূলত 4 মানে আনবাউন্ডটি সঠিক কি?
জেরেমি এ। পশ্চিম

9

আনন্দটেক আবিষ্কার করলেন যে খাঁটি পঠন ভারের সাথে এটি সামান্য আঘাত পেয়েছিল এবং একটি লিখন ভারী বোঝা নিয়ে এটি কিছুটা জয় ছিল। এটি -5% এর চেয়ে খারাপ আপনার বা আরও 15% এর চেয়ে অনেক বেশি জিতিয়ে ফেলতে পারে এমন ভাবনা ভাবতে আমি কিছুই দেখিনি। একটি এটমের সাথে কী তা লক্ষ্য করুন, এটি একটি বিশাল জয়, তবে এটি একটি খুব বিজোড় সিপিইউ।

আপনারা সবাই সিপিইউ বদলেছেন? আপনি 12 এমবি ক্যাশে এবং 4 টি থ্রেড, তাই থ্রেড প্রতি 3MB ক্যাশে, ক্যাশে 8 এমবি এবং 8 টি থ্রেড, সুতরাং প্রতি থ্রেডে 1MB হয়ে গেছেন। এখন, এটি ওভারসিম্প্লিফাইটিং করছে, তবে আমি বাজি ধরছি এটিই আপনাকে হত্যা করছে, আপনি ক্যাশে অনুসন্ধান চালাতেন, এবং এখন এগুলি র‌্যাম থেকে চালান কারণ তাদের 1MB এর চেয়ে বেশি কিন্তু 3MB এর চেয়ে কম প্রয়োজন। এইচটি বন্ধ করা সম্ভবত সাহায্য করবে তবে আমি পুরানো সিপিইউতে ফিরে যাব। এইচটি বন্ধ করুন, এবং আপনি প্রতি থ্রেডে 2 এমবি পান, তবে যদি আপনার কাজের চাপটি এতটা ছিটিয়ে দেয় তবে এটি কোনও লাভ করবে না। এটি ভাল হতে পারে যে আপনার কাজের চাপের জন্য পুরানো 12 এমবি ক্যাশে সিপিইউ অত্যন্ত দ্রুত।

আমি এইচটি বন্ধ করার চেষ্টা করব এবং দেখুন এটি কোনও উন্নতি কিনা, তবে আমি সন্দেহ করি যে আপনার কাজের বোঝার জন্য ক্যাশে রাজা এবং আপনার 12 এমবি চিপে ফিরে যেতে হবে।


3
প্রতিটি মূল পর্যবেক্ষণে এল 2 ক্যাশে একটি বিস্তৃত ওভারসিম্প্লিফিকেশন, যেহেতু সিপিইউ এক সম্পূর্ণ প্রজন্মের সামনে (নেহালেম / কোর আই 7 বনাম কোর 2 কোয়াড শ্রেণি)।
জেফ আতউড 8

@ জেস, @ রোনাল্ড এবং নেহালেমের কাছে সামান্য এল 2 ক্যাশে রয়েছে। বাল্কটি এল 3 যা কোর জুড়ে ভাগ করা হয়।
মিরসিয়া চিরিয়া

7

হাইপারথ্রেডিং সর্বোত্তমভাবে, কেবল অপারেটিং সিস্টেম থেকে সরিয়ে সরিয়ে এটিকে ডাই রাখার এক উপায়, এল 1 এবং এল 2 ক্যাশে সরাসরি অ্যাক্সেস সহ, যা একটি ক্রপলোডকে দ্রুত স্যুইচ করে তোলে।

ভিএমওয়্যারের সাথে পরীক্ষার মাধ্যমে ইঙ্গিত দেওয়া হয়েছে যে এইচটি নিষ্ক্রিয় করা স্ট্যান্ডার্ড লোডের অধীনে কোনও বিচ্ছিন্ন পার্থক্য করেনি, এবং ভারী বোঝার অধীনে 5% বৃদ্ধি পেয়েছে, কারণ সত্যিকার অর্থে "আসল" থ্রেড এবং "নকল" থ্রেডের পার্থক্যটি জানতে ESXi যথেষ্ট স্মার্ট ( এটির তুলনায় এটি আরও অনেক কিছু, তবে এটি সাধারণ মানের দিক থেকে)। এসকিউএল সার্ভার ২০০৫ তেমন স্মার্ট নয়, তবে এটি একটি আপ-টু-ডেট অপারেটিং সিস্টেমের সাথে মিলিত এইচটি নিষ্ক্রিয় করার খুব কম সুবিধা হওয়া উচিত।

যা কিছু বলেছিল, আমি রোনাল্ডের সাথে একমত যে এটি সম্ভবত আপনার এল 2 ক্যাশে হতে পারে। ক্যাশে আকারে একটি 33% ড্রপ যথেষ্ট পরিমাণে এবং আমরা যখন আমাদের এসকিউএল সার্ভারগুলিকে নির্দিষ্ট করি আমরা প্রতিবার কাঁচা ঘড়ির গতি ধরে ক্যাশে যাই।


আপনি কি বাহ্যিকভাবে সম্পর্ক স্থাপন করতে পারেন যাতে ডান 4 টি এসকিউএল দ্বারা উপেক্ষা করা যায়?
স্যাম জাফরন

3
সাধারণত আপনি একে অপরের সিপিইউ থ্রেডের সাথে সখ্যতা স্থাপন করতেন, তবে যতক্ষণ না ম্যাক্সডপ সঠিকভাবে সেট করা থাকে ততক্ষণ আমি আদর স্থাপন করার কোনও কারণ দেখতে পাচ্ছি না। এইচটি-র সাহায্যে যদিও কোনও সিপিইউতে আঘাত পেতে প্রথম থ্রেডটি "মূল" থ্রেডে পরিণত হয়, এবং দ্বিতীয় থ্রেডটি "এইচটি" থ্রেড। যদিও এখানে কোন আসল "প্রধান" এবং "এইচটি" থ্রেড নেই, কারণ এটি প্রথমে যে কোনও সেখানে এসেছিল এবং তারপরে যখন তারা টাস্ক স্যুইচ করে, ক্রমটি বিপরীত হয়।
মার্ক হেন্ডারসন

নেহালেম-ভিত্তিক সিপিইউতে খুব, খুব ছোট L2 ক্যাশে রয়েছে, এর বেশিরভাগ এল 3 ভাগ করে নিয়েছে।
মিরসিয়া চিরিয়া

7

আমার অভিজ্ঞতার উপর ভিত্তি করে, এইচটিআইটি একটি উইন্ডোজ ২০০৮ আর 2 ক্লাস্টারে (এসকিউএল সার্ভার ২০০৮ আর ২ চালানো) আমার সক্রিয় নোডগুলিতে চিরতরে আই / ও অপারেশনগুলি গ্রহণ করছিল। একটি মজাদার ঘটনাটি ছিল এটি অপেক্ষার পরিসংখ্যানগুলিতেও প্রতিফলিত হয়নি বা মাইক্রোসফ্ট সমর্থনের জন্য আমিও পিএসডিডায়াগে দৌড়েছি না।

আমি যেভাবে I / O কম লক্ষ্য করেছি তা কেবল শারীরিক ডিস্কের জন্য ওএস কাউন্টার দেখে। স্যাম ইঙ্গিত হিসাবে, আমি এখানে এবং এখানে এটি সম্পর্কে লিখেছেন

আপনি যদি আই / ও সমস্যা না ভোগ করেন এবং সিপিইউ আবদ্ধ হন আমি আপনাকে এইভাবে শুরু করার পরামর্শ দিচ্ছি:

কোন পয়েন্টপয়েন্টগুলি প্রক্রিয়াগুলি এবং টি-এসকিউএল ব্লকগুলি সর্বাধিক সিপিইউ ব্যবহারের কারণ ঘটছে। আমাদের অভিজ্ঞতায়, আমরা আই / ও (সমস্যা সমাধানের মাধ্যমে এইচটি বন্ধ করে) সমস্যাটি সমাধান করার পরে আমরা এমন কোড চিহ্নিত করেছি যা ২০০৮ এর আর -২ এ ভয়াবহভাবে পারফর্ম করছে এবং ২০০৫ সালে জরিমানা করছে I আমি এটি সম্পর্কে এখানে লিখেছিলাম ।

উচ্চ চাপের মধ্যে থাকা অবস্থায়, অ্যাডাম মাচানিকের sp_Woisactive চালান। আপনি এখান থেকে ডাউনলোড করতে পারেন । সত্যই খারাপ পরিকল্পনার কারণে আমরা অত্যধিক পরিমাণে লজিকাল রিডের (কোয়েরিতে প্রতি 20 মিলিয়ন) বেশি পরিমাণে সিপিইউ ব্যবহারের অভিজ্ঞতা অর্জন করছিলাম। আমাদের প্রক্রিয়াগুলি পার্টিশনযুক্ত টেবিলগুলির সাথে আধা-বিরোধী যোগদান করে।

আমার পরবর্তী প্রস্তাবটি হ'ল টি-এসকিউএল কোডের এমন একটি সেট সনাক্ত করতে প্রোফাইলার চালানো যা সিপিইউ এবং আই / ও লজিকাল রিড উভয়ই উচ্চ।

উপরের পদক্ষেপগুলির সাহায্যে আমরা আপত্তিজনক প্রক্রিয়াগুলি টিউন করতে সক্ষম হয়েছি এবং 85% টেকসই সিপিইউ ব্যবহার থেকে প্রায় শূন্য করতে চলেছি।

শুভকামনা এবং আপনি যদি আমার ব্লগে মামলাটি যুক্ত করতে চান তবে আপনি যদি কোনও সমাধান খুঁজে পান তবে নির্দ্বিধায় আমাকে একটি লাইন ফেলে দিন।

ধন্যবাদ

অস্কার


1
প্রোফাইলের জন্য +1, একবার ঝামেলার জায়গাটি সনাক্ত হওয়ার পরে আমাকে অনেক সময় বাঁচিয়েছিলেন
মার্ক হেন্ডারসন

আপনার সমস্ত পরামর্শের জন্য +1 ধন্যবাদ, আমাদের এসকিউএলকে যুক্তিসঙ্গত পর্যায়ে সুর করা মোট দুঃস্বপ্ন, আমরা ট্যাগগুলির সাথে আমাদের লেনদেনের জন্য পুরোপুরি প্রবন্ধের উপর নির্ভর করি, প্রায়শই আমরা নির্দিষ্ট ট্যাগগুলিতে আইটেমের তালিকার সন্ধান করি তাই আমরা পুরোটা ধরে ফেললাম সেট এবং এটি নিচে ফিল্টার। উদাহরণস্বরূপ, ট্যাগগুলির সাথে প্রশ্নের তালিকা পাওয়া [x] এবং [y] তারিখ অনুসারে অর্ডার করা পুরো টেক্সট থেকে প্রচুর পরিমাণে ডেটা টানা এবং তারপরে একটি বিশাল যোগদানের অন্তর্ভুক্ত।
স্যাম জাফরান

বুঝতে পারছিল না। একটি নমুনা ধরুন এবং এটি পরিসংখ্যানগুলি আইও চালু করুন এবং দেখুন যে আপনি কোনও লজিকাল রিডের সাহায্যে কোনও টেবিল চিহ্নিত করতে পারেন কিনা। আবার, আমরা ২০০ fine সালে ঠিকঠাক কাজ করছিলাম এবং ২০০৮ আর 2-তে খুব খারাপ। আপনি যদি কেবলমাত্র উচ্চ সিপিইউ ব্যবহারের সন্ধান করেন এবং উচ্চতর সিএক্সপ্যাককেট অপেক্ষা করেন, তবে প্রথমে 10, 15 বা 20 পর্যন্ত সমান্তরালতার জন্য প্রান্তিক মূল্য বাড়িয়ে চেষ্টা করুন
ওজমোরা

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

sp_Woisactive একটি দুর্দান্ত ভয়ঙ্কর সরঞ্জাম, প্রশ্নগুলি যেভাবে ক্লিকযোগ্য তা পছন্দ করুন
স্যাম

2

এইচটি ভাল বা খারাপ তা নিচে নামানো কঠিন।

এটি অভিজ্ঞতা এবং পঠনের উপর ভিত্তি করে সার্ভার লোড প্যাটার্নের উপর নির্ভর করে। এটি, যখন এটি কার্য সম্পাদনকে প্রভাবিত করে তখন এটি এত খারাপভাবে ঘটে : অন্যথায় আপনি এটি লক্ষ্য করেন না।

আমি যে তত্ত্বটি পড়েছিলাম তা হ'ল থ্রেডগুলি ক্যাশে ভাগ করে যার অর্থ প্রতি থ্রেড প্রতিক্রিয়াশীল পরিস্থিতিতে প্রতিটি থ্রেড অন্য থ্রেডের ক্যাশে ওভাররাইট করতে পারে। আপনার যদি খুব বেশি সমান্তরালতা না থাকে বা আপনার বোঝা অনেকগুলি ছোট প্রশ্ন থাকে তবে তা আপনাকে প্রভাবিত করতে পারে না।

আমি ম্যাক্সডিওপি এবং প্রসেসরের সান্নিধ্যের সাথে চেষ্টা করেছি (এসকিউএল সার্ভার 2000 এ আমার শেষ আসল ডিবিএর ভূমিকায় ফিরে) তবে কখনই সিদ্ধান্তমূলক কিছু খুঁজে পেলাম না: কেবল তখন আমার দোকানের জন্য।

দ্রুত পরীক্ষা হিসাবে, আপনি কেবলমাত্র শারীরিক কোর (নিম্ন সংখ্যা) ব্যবহার করতে প্রসেসরের সংযোগ স্থাপন করতে পারেন এবং কী ঘটে তা দেখুন।

তবে সর্বাধিক আপনি আপনার অর্ধেক কোর হারাবেন। আজকাল যে বিষয়টি কয়েক বছর আগে আমি খেলছিলাম তার সাথে তুলনা করা যায় না যখন এটি 2 বনাম 4 বা 4 বনাম 8 ছিল। এখন এটি 8 বনাম 16 বা 16 বনাম 32।

সম্পাদনা করুন: স্লাভা ওকসের একটি পরীক্ষা


কোর 0-3 শারীরিক এবং 4-7 যৌক্তিক? এটি কি এইভাবে কাজ করে? আমরা বলতে পারি না, এবং আমাকে জানাতে কোনও সরঞ্জামই বের করতে পারি না ..
জেফ

2
@ জেফ অ্যাটউড: আমি আরও পরে খুঁজে পাব। আমি আছে এটা কোথাও পড়া .... এখন জন্য: support.microsoft.com/kb/322385
gbn

এই কেবি নিবন্ধটি বেশ পরিমাণে এটির যোগ করে।
পৌষকা

যদিও এই কেবি নিবন্ধে কিছু দরকারী তথ্য রয়েছে তবে জিজের প্রশ্নের সরাসরি জবাব দেবে বলে মনে হয় না ঠিক কীভাবে যৌক্তিক প্রসেসরগুলি শারীরিক বিষয়গুলিতে ম্যাপ করা হয়। আমার মস্তিষ্ক মাধ্যমে অর্ধেক উপায় সম্পর্কে ভাজা কিন্তু আশা করছি এই INTEL নিবন্ধটি আপনাকে দিতে হবে কি ম্যাপিং জিনিসটা প্রয়োজন: software.intel.com/en-us/articles/... দেখতে software.intel.com/en-us/ ব্লগগুলি / ২০০৯ / 12/21 /… এর সম্পর্কিত লিঙ্কগুলির সাথে।
ব্র্যাডিসি

@ জেফ আতউড, @ ব্র্যাডসি: লর্ডি, খুঁজে পাওয়া খুব কঠিন। এটি দেখুন: এটি ইন্টেলের পুনঃনির্মাণের উপর নির্ভর করে। SQL সার্ভার অন্তর্নিহিত উইন্ডোজ শুমার ব্যবহার করবে download.microsoft.com/download/5/7/7/...
gbn

2

দুর্ভাগ্যক্রমে, আমি মনে করি না যে আপনি "হাইপারথ্রেডিং বন্ধ করে দেওয়ার চেষ্টা করুন এবং দেখুন কিনা এটি সাহায্য করে" এর চেয়ে আরও নির্দিষ্ট কোনও উত্তর পেতে চলেছেন।

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

আমার উপদেশ:

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

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

এবং কেবল স্পষ্ট করে বলতে গেলে, এই সেটিংটি এসকিউএলকে একটি পৃথক পৃথক টেবিলের জন্য একটি জোনে একাধিক থ্রেড ব্যবহার করার মঞ্জুরি দেয়, সুতরাং আপনি সত্যিই পুরোপুরি সমান্তরালতা দূর করছেন না।

কমপক্ষে চেষ্টা করার মতো, যেহেতু এই সেটিং পরিবর্তনটি তত্ক্ষণাত্ কার্যকর হয়ে যায় এবং এসকিউএল পরিষেবাটি পুনরায় চালু করার প্রয়োজনও হয় না: http://msdn.microsoft.com/en-us/library/ms181007.aspx
এর অর্থ আপনি স্যুইচ করতে পারেন জিনিসগুলি জাহান্নামে যেতে শুরু করলে অবিলম্বে এটি ফিরে আসবে।

BIOS- এ হাইপারথ্রেডিং বন্ধ করার জন্য একটি সম্পূর্ণ সার্ভার রিবুট লাগবে, তাই এটি আরও কিছুটা ঝুঁকিপূর্ণ।


0

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

https://serverfault.com/a/196329/6390

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