এসকিউএল সার্ভার সমস্ত মেমরি ব্যবহার করছে না


10

আমার কাছে এসকিউএল সার্ভার 2014 রয়েছে সর্বোচ্চ মেমরির সাথে 6 জিবি সেট করা (শারীরিক স্মৃতি 8 জিবি))

উদ্দিষ্ট সার্ভার স্মৃতি কখনও কখনও 6GB এবং তারপর ফিরে ড্রপ মোট সার্ভার মেমরি (প্রায় 5.3GB, 6GB কখনো ছুঁয়েছে)। আমি ব্যবহৃত committed_kb মধ্যে sys.dm_os_sys_info SQL সার্ভার দ্বারা ব্যবহৃত মেমরি বার করো।

যখন আমি sys.dm_os_buffer_descripttors নিরীক্ষণ করি , আমি দেখতে পাচ্ছি ক্যাশে থেকে পৃষ্ঠাগুলি বাদ পড়েছে - তবে এখনও 700MB মেমরি বাকি রয়েছে। যদি কোনও কিছুর মেমরির প্রয়োজন হয় না, আপনি কীভাবে পৃষ্ঠাগুলি ক্যাশে থেকে সরানো হয়েছে তা ব্যাখ্যা করবেন? আমি প্রত্যাশা করব যে এসকিউএল সার্ভার কেবল যখন পৃষ্ঠাগুলির মেমরির প্রয়োজন হয় তখন সরিয়ে দেয়।

এই সার্ভারে মোছা টেম্প টেবিলগুলি কোনও সমস্যা নয়। আমার পিএলই 3632 The প্রক্রিয়া ক্যাশে 2182 এমবি MB

আমি আশা করব যে কেবল স্মৃতি বাকী থাকলে পৃষ্ঠাগুলি বাদ দেওয়া হবে তবে আমার 700 এমবি নিখরচায় রয়েছে বা আমি এটিকে ভুল বুঝেছি?

কেউ দয়া করে এই আচরণটি ব্যাখ্যা করার চেষ্টা করতে পারেন?

এসকিউএল সার্ভারটি ডিস্ক থেকেও পড়ছে, তাই আমি মনে করি আমি এই সিদ্ধান্তে পৌঁছে যেতে পারি যে প্রয়োজনীয় সমস্ত পৃষ্ঠা মেমরির মধ্যে নয়।

আমি আরও কিছু গবেষণা করেছি এবং আমি ডিস্ক থেকে মেমরিতে প্রচুর পরিমাণে পৃষ্ঠা পড়েছি এবং পাঠের সময় টাস্ক ম্যানেজারে কিছু লক্ষ্য করেছি:

  • ব্যবহৃত স্মৃতিটি 7.0 গিগাবাইট -> 7.2 জিবি -> 7.0 জিবি -> 7.2 জিবি -> থেকে চলে গেছে ...
  • স্ক্ল্যাজারজার.এক্সে 5.3 জিবি -> 5.5 জিবি -> 5.3 জিবি -> 5.5 জিবি -> থেকে গেছে ...

এটি ঠিক যেমন উইন্ডোজ sqlservr.exe 6GB তে বাড়তে দেয় না ।

আমি শ্যাঙ্কির দেওয়া ক্যোয়ারী চালিয়েছি:

select
(physical_memory_in_use_kb/1024) Physical_Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024 )Locked_pages_used_Sqlserver_MB,
(Virtual_address_committed_kb/1024 )Total_Memory_in_MB,--RAM+ Pagefile
process_physical_memory_low,
process_virtual_memory_low
from sys. dm_os_process_memory

এটি নিম্নলিখিত ফলাফল দিয়েছে:

Physical_Memory_usedby_Sqlserver_MB: 5247
Locked_pages_used_Sqlserver_MB: 0
Total_Memory_in_MB: 5625
process_physical_memory_low: 0
process_virtual_memory_low: 0

আমি যা বুঝতে পারি না কেন মোট_মেমোরি_ইন_এমবি 6144 (সর্বোচ্চ মেমরি) এর সমান নয়?

ইন sys.dm_os_ring_buffers আমি দেখেছি RESOURCE_MEMPHYSICAL_LOW, তাই আমি মনে করি উইন্ডোজ মেমরিতে কম চলমান ছিল এবং SQL সার্ভার কিছু ফিরে আসবে। তবে প্রায় 1GB মেমরি পাওয়া যায় => উইন্ডোজ কেন বলছে যে এটি মেমরির কম চলছে?

<Record id="13861" type="RING_BUFFER_RESOURCE_MONITOR" time="20635079241">   
   <ResourceMonitor>
        <Notification>RESOURCE_MEMPHYSICAL_LOW</Notification>
        <IndicatorsProcess>0</IndicatorsProcess>
        <IndicatorsSystem>2</IndicatorsSystem>
        <NodeId>0</NodeId>
        <Effect type="APPLY_LOWPM" state="EFFECT_OFF" reversed="0">0</Effect>
        <Effect type="APPLY_HIGHPM" state="EFFECT_IGNORE" reversed="0">85827186</Effect>
        <Effect type="REVERT_HIGHPM" state="EFFECT_OFF" reversed="0">0</Effect>   
   </ResourceMonitor>   
   <MemoryNode id="0">
        <TargetMemory>6050080</TargetMemory>
        <ReservedMemory>67208656</ReservedMemory>
        <CommittedMemory>5423548</CommittedMemory>
        <SharedMemory>0</SharedMemory>
        <AWEMemory>0</AWEMemory>
        <PagesMemory>4975656</PagesMemory>   
   </MemoryNode>   
   <MemoryRecord>
        <MemoryUtilization>100</MemoryUtilization>
        <TotalPhysicalMemory>8387608</TotalPhysicalMemory>
        <AvailablePhysicalMemory>1048452</AvailablePhysicalMemory>
        <TotalPageFile>11142348</TotalPageFile>
        <AvailablePageFile>2887916</AvailablePageFile>
        <TotalVirtualAddressSpace>137438953344</TotalVirtualAddressSpace>
        <AvailableVirtualAddressSpace>137371168056</AvailableVirtualAddressSpace>
        <AvailableExtendedVirtualAddressSpace>0</AvailableExtendedVirtualAddressSpace
   </MemoryRecord> 
</Record>

আপডেট
সর্বদা 1GB মেমরি কেন পাওয়া যায় তার আরও কিছু গবেষণার পরে, আমি মনে করি যে আমি কিছু পেয়েছি।
এটি কি সম্ভব যে এসকিউএল সার্ভার কেবল নিখরচায় মেমরি বরাদ্দ করতে পারে এবং উপলব্ধ মেমরিটিকে উপেক্ষা করা হয়? প্রসেস এক্সপ্লোরার (সিস্টার্নালস) চলাকালীন আমি দেখলাম ফ্রি মেমরি 0 ছিল।

উত্তর:


3

শুরু করার সাথে সাথে অবশ্যই বলতে হবে আপনি সর্বাধিক সার্ভার মেমরি 6 গিগাবাইটে সেট করেছেন এবং মোট মেমরিটি 8 গিগাবাইট, সুতরাং আপনি ওএসের জন্য সবেমাত্র 2 জিবি রেখে গেছেন যা অনেক ক্ষেত্রে উইন্ডোজ মেশিনে এসকিউএল সার্ভার ছাড়া কিছু ইনস্টল না করা হলেও if , ওএসকে সরবরাহ করা খুব কম স্মৃতি। অ্যান্টিভাইরাস ইনস্টল থাকা সিস্টেমে সঠিকভাবে কাজ করতে, ওএসকে কমপক্ষে 4 জিবি দিতে হবে। আমি সরাসরি ওএসের জন্য 2 জিবি এবং এভির জন্য 1.5 জি ছাড়ি।

টার্গেট সার্ভার মেমরিটি কখনও কখনও 6 গিগাবাইট হয় এবং তারপরে টোটাল সার্ভার মেমোরিতে ফিরে আসে (প্রায় 5.3 জিবি, কখনই 6 জিবিতে পৌঁছায় না)।

টার্গেট সার্ভার মেমরিটি সূচিত করে যে আদর্শ ক্ষেত্রে সঠিকভাবে কাজ করতে এসকিউএল সার্ভারের দ্বারা কতটা মেমরির প্রয়োজন। টার্গেট সার্ভার মেমরিটি 6 গিগাবাইট হওয়ার চেষ্টা করছে কারণ আপনি সর্বোচ্চ সার্ভারের মেমরির মান 6 গিগাবাইটে সেট করেছেন । এটি অনুমোদিত সমস্ত মেমরির গ্রাস করার চেষ্টা করছে।

মোট সার্ভার মেমরি হ'ল এসকিউএল সার্ভার আসলে এখনই গ্রাস করতে সক্ষম। এটি প্রতিশ্রুতিবদ্ধ স্মৃতি এবং শারীরিক র‌্যাম দ্বারা সমর্থিত। এটি আপনার ক্ষেত্রে সর্বোচ্চ 5.5 জিবি।

এসকিউএল সার্ভার তার মেমরির খরচ বাড়ানোর চেষ্টা করছে তবে 5.3 বা 5.5 জিবি পৌঁছানোর পরে, ওএস এসকিউএল সার্ভারকে তার মেমরির খরচ আরও বাড়িয়ে তুলতে বলছে না এবং সম্ভবত কম মেমোরি বিজ্ঞপ্তি চিহ্নিত করতে পারে। এটি ঘটছে কারণ ওএস ইতিমধ্যে উপরে বলেছে কম স্মৃতির মুখোমুখি হতে পারে। এসকিউএলএএস সাড়া দেয় যদি উইন্ডোজ ওএস এর ক্যাশেগুলি সেগুলির ব্যবহারকে কমিয়ে দেয় তবে মেমরির চাপের মুখোমুখি হয়। কম মেমরি বিজ্ঞপ্তি দেওয়া হয়েছে কিনা তা পরীক্ষা করতে আপনি রিং বাফারকে জিজ্ঞাসা করতে পারেন । আমাকে অবশ্যই ডিএমভি sys.dm_os_ring_buffer যুক্ত করতে হবে অনাবন্ধিত তবে নিরাপদ।

আমি দেখতে পাচ্ছি যে পৃষ্ঠাগুলি ক্যাশে থেকে বাদ পড়েছে - তবে এখনও 700MB স্মৃতি বাকী রয়েছে। যদি কোনও কিছুর মেমরির প্রয়োজন হয় না, আপনি কীভাবে পৃষ্ঠাগুলি ক্যাশে থেকে সরানো হয়েছে তা ব্যাখ্যা করবেন? আমি প্রত্যাশা করব যে এসকিউএল সার্ভার কেবল যখন পৃষ্ঠাগুলির মেমরির প্রয়োজন হয় তখন সরিয়ে দেয়।

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

অন্য একটি জিনিস, দয়া করে এসকিউএল সার্ভারের মেমরির ব্যবহারের জন্য টাস্ক ম্যানেজারটির দিকে তাকান না। এটি সর্বদা আপনাকে সঠিক মান দেয় না বিশেষত যখন এসকিউএল সার্ভার পরিষেবা অ্যাকাউন্টে মেমরির সুবিধায় লক পৃষ্ঠা থাকে । আপনার ক্ষেত্রে, এসকিউএল সার্ভারের সর্বাধিক সার্ভার মেমরি 6 জিবি থাকলেও, ওএসকে মাত্র 2 গিগাবাইট দেওয়া হচ্ছে যা এসকিউএল সার্ভারকে তার ব্যবহার বৃদ্ধি করতে বাধ্য করছে কারণ এসকিউএল সার্ভারের জন্য 2 জিবি কম রয়েছে is সিস্টেমে এসকিউএল সার্ভার চলমান ছাড়াও কি কিছু আছে?

আপনি যদি এসকিউএল সার্ভারের মেমরির গ্রাহ্য গণনা করতে চান তবে দয়া করে ব্যবহার করুন:

select
(physical_memory_in_use_kb/1024) Physical_Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024 ) Locked_pages_used_Sqlserver_MB,
(virtual_address_space_committed_kb/1024 ) Total_Memory_in_MB,--RAM+ Pagefile
process_physical_memory_low,
process_virtual_memory_low
from sys.dm_os_process_memory

আমি যা বুঝতে পারি না কেন টোটাল_মেমোরি_ইন_এমবি 6144 (সর্বোচ্চ মেমরি) এর সমান নয়।

টোটাল_মেমোরি_ইন_এমবি কলামটি এসকিউএল সার্ভার (র‌্যাম + পৃষ্ঠা ফাইল) দ্বারা ব্যবহৃত মোট মেমরিটিকে বোঝায়। র‌্যাম আসলে শারীরিক স্মৃতি ব্যবহৃত বা প্রতিশ্রুতিবদ্ধ মেমরি। এসকিউএল সার্ভার প্রক্রিয়াটির কিছু অংশ ডিস্কে পৃষ্ঠাযুক্ত এবং এটি ভার্চুয়াল মেমরি বা পৃষ্ঠা ফাইল হিসাবে গঠন করে এবং তাই আপনি যদি এসকিউএল সার্ভারের দ্বারা ব্যবহৃত মোট স্মৃতি দেখতে পান এটি শারীরিক স্মৃতি এবং পৃষ্ঠা ফাইলের সমষ্টি।

যদিও কলাম Physical_Memory_usedby_Sqlserver_MB শুধু শারীরিক মেমরির (মেমরি প্রকৃত RAM বা অঙ্গীকারবদ্ধ মেমরি দ্বারা সমর্থিত) ব্যবহার করা হয়। এই কারণেই উভয়ই আলাদা। আপনি যদি আসল কলামটি দেখেন তবে প্রথমটি হ'ল শারীরিক মেমরি ব্যবহৃত হয় এবং অন্যটি ভার্চুয়াল মেমরি প্রতিশ্রুতিবদ্ধ।

আপনি পেজড মেমরি যা পার্থক্য হবে দেখতে চান Total_Memory_in_MB এবং Physical_Memory_usedby_Sqlserver_MB

দ্রষ্টব্য: ব্যবহৃত মোট স্মৃতি ব্যবহৃত শারীরিক মেমরির চেয়ে বেশি হবে।


5

এসকিউএল সার্ভার বাফার ক্যাশে ব্যতীত আরও অনেক ক্যাচ ব্যবহার করে যদিও এটি এখন পর্যন্ত সবচেয়ে বড় (প্রকৃত উদাহরণ হ'ল প্ল্যান ক্যাশে)। আপনি মেমরি DBCC MEMORYSTATUSএবং বিভিন্ন ডিএমভিতে ঘনিষ্ঠভাবে নজর রাখতে পারেন । লক্ষ্য মেমরি এবং মোট স্মৃতি বিশেষত বাফার পুল / ক্যাশে উল্লেখ করে।

ক্রিশ্চিয়ান বোল্টনের সেমিনাল প্রফেশনাল এসকিউএল সার্ভার ২০০৮ এর অভ্যন্তরীণ এবং সমস্যা সমাধানের উদ্ধৃতি :

  • MSSQL$<instance >:Memory Manager\Total Server Memory (KB):
    এটি বাফার পুলের বর্তমান আকারকে নির্দেশ করে।
  • MSSQL$<instance >:Memory Manager\Target Server Memory (KB):
    এটি বাফার পুলের জন্য আদর্শ আকার নির্দেশ করে। মোট এবং লক্ষ্যমাত্রা কোনও সার্ভারে প্রায় একই রকম হওয়া উচিত যা কোনও সময়ের জন্য চলছে না এমন মেমরির চাপের সাথে। তাহলে মোট উল্লেখযোগ্যভাবে কম উদ্দিষ্ট , তাহলে এটি সম্ভব যে SQL সার্ভার মেমরি চাপ, যে ক্ষেত্রে আপনি আরও তদন্ত করতে পারি কারণে বাফার পুকুর বৃদ্ধি পায় না পারি।

মোট এবং টার্গেট সার্ভারের মেমরি একই থাকলেও কেবল যোগ করার জন্য আমরা কোনও 100% নিশ্চিত হতে পারি না যে কোনও মেমরির চাপ নেই। এক্ষেত্রে আমাদের আরও কিছু মেমোরি কাউন্টার চালানো উচিত এবং তাদের উপাত্তও নেওয়া উচিত কোনও সিদ্ধান্তে পৌঁছানোর জন্য।
শান্ত

"মোট এবং লক্ষ্যমাত্রা কোনও সার্ভারে প্রায় একই রকম হওয়া উচিত যা কোনও সময়ের জন্য চলছে না এমন মেমরির চাপের সাথে।" এই সম্পর্কে চিন্তা করা যাক। আমি 128 গিগাবাইট র‌্যাম সহ একটি নতুন এসকিউএল সার্ভার দাঁড় করিয়েছি এবং আমি একটি একক 1 জিবি ডাটাবেস নিয়ে এসেছি। একমাস চলুক। আমি কি সত্যিই বিশ্বাস করতে পারি যে এই মাসের শেষে টোটাল এবং লক্ষ্যগুলি প্রায় একই রকম হতে চলেছে? যদি তারা না হয় তবে আমি কী বিশ্বাস করতে পারি যে সার্ভারটি মেমরির চাপের মধ্যে রয়েছে? আমি দেখলাম এটাতে বিশ্বাস করা কঠিন.
মাইক শেরিল 'ক্যাট রিকল'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.