আমার কাছে এসকিউএল সার্ভার 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 ছিল।