تصحيح: خطأ نفاد الذاكرة عند مساحة العنوان الظاهرية لعملية SQL Server منخفض جداً في الذاكرة المتوفرة

هام: تمت ترجمة هذه المقالة باستخدام برامج مايكروسوفت للترجمة الآلية ومن المحتمل ان يتم تحريرها او تدقيقها بعد ذلك من خلال تكنولوجيا منصة مجموعات الترجمة(CTF) او من خلال مترجم بشري. تقدم لك شركة مايكروسوفت هذه المقالات المترجمة بشكل آلي او بالترجمة البشرية او بعد تحريرها وتدقيقها من قبل مجموعات الترجمة حتى تمكنكم من الوصول إلى جميع المقالات الموجودة في قواعد المعرفة لديها بلغات مختلفة. إلا أن المقالات المترجمة قد تحتوي على أخطاء في المفردات او بناء الجمل او النحو. وعليه، فإن شركة مايكروسوفت ليست مسؤولة عن اية أخطاء او عدم دقة في الترجمة او أية أضرار قد تحدث نتيجة أخطاء في ترجمة محتويات النص او استخدامه من قبل العملاء.

اضغط هنا لرابط المقالة باللغة الانجليزية3074434
ملاحظة
بعد تثبيت هذا التحديث، يجب إضافة تتبع العلم-T8075 كمعلمة بدء تشغيل لتمكين هذا التغيير.
الأعراض
عند تشغيل استعلام في إصدار 64 بت من Microsoft SQL Server 2014 أو Microsoft SQL Server 2012، تتلقى رسالة خطأ نفاد الذاكرة مشابهة لما يلي في سجل خطأ SQL Server:

فشل تخصيص صفحات: FAIL_PAGE_ALLOCATION 513

الاستعلامات وقتاً طويلاً الانتهاء من التنفيذ وتواجه انتظار SOS_MEMORY_TOPLEVELBLOCKALLOCATOR.

عند فحص نقاط المعلومات التالية، سوف تجد أن هناك مساحة العنوان الظاهرية المتوفرة منخفضة جداً:

  • MEMORYSTATUS DBCC-المقطع "حساب" عملية/نظام-"الذاكرة الظاهرية"
  • دي أم: sys.dm_os_process_memory-virtual_address_space_available_kb العمود
تبدأ هذه القيم حوالي 8 تيرابايت على x64 معالجة ومتابعة الصعود إلى أسفل وتصل إلى عدة غيغابايت (GB).

عندما تكون في المرحلة حيث مساحة العنوان الظاهرية المتوفرة منخفضا جداً، الاستعلامات التي يحاول تنفيذ الذاكرة قد تواجه تخصيص نوع انتظار CMEMTHREAD أيضا.

تواصل مراكز البيانات التالي تتزايد بمرور الوقت:
  • دي أم: sys.dm_os_memory_nodes-virtual_address_space_reserved_kb العمود و sys.dm_os_process_memory
  • MEMORYSTATUS DBCC-مدير الذاكرة المقطع-VM المحجوزة

هذه القيم عادة ستزيد في مضاعفات القيمة "ذاكرة الملقم الحد الأقصى" تصل إلى 8 تيرابايت تقريبا.
السبب
عند عملية SQL Server قد وصل إلى الحالة حيث إجمالي ذاكرة الملقم "ذاكرة الخادم الهدف" = = ذاكرة الملقم بحد أقصى، هناك نهج في إدارة الذاكرة خادم SQL للسماح لعدة صفحات 8 كيلو بايت بنجاح مؤقتاً طلب مخصصات جديدة. قد يؤدي نمط توزيع المتكررة تحت مثل هذه الحالة تجزئة كتل الذاكرة واستهلاك مساحة العنوان الظاهرية. في حالة تكرار هذه العملية عدة مرات، ستستنفد مساحة العنوان الظاهرية ملقم SQL وستلاحظ الأعراض التي ذكرت سابقا.
الحل

معلومات الإصلاح العاجل

لحل هذه المشكلة، تثبيت الإصلاح العاجل من تصحيح: خطأ عند استدعاء الإجراء المخزن الخاص بك إجراء مخزن آخر على ملقم مرتبط في SQL Server 2014.

المتطلبات الأساسية

يجب أن يكون لديك التحديث التراكمي 3 ل SQL Server 2014 Service Pack 1 مثبتة لتطبيق هذا الإصلاح العاجل.

إشعار

بعد تثبيت هذا التحديث، يجب إضافة تتبع العلم-T8075 كمعلمة بدء تشغيل لتمكين هذا التغيير.

معلومات التحديث التراكمي

تم تصحيح هذه المشكلة أولاً في التحديث التراكمي التالية من SQL Server.

توصية: تثبيت آخر تحديث تراكمي ل SQL Server
يحتوي التحديث التراكمي كل جديدة ل SQL Server على كافة الإصلاحات العاجلة وكافة إصلاحات الأمان التي تم تضمينها مع التحديث التراكمي السابق. نوصي بتحميل وتثبيت أحدث التحديثات التراكمية ل SQL Server:


يمنع هذا الإصلاح العاجل كل من نفاد الذاكرة والتخفيض المستمر من مساحة العنوان الظاهرية المتوفرة قد تواجهك.
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "ينطبق على".
معلومات أخرى
  • يسمح Windows 2012 R2 مساحة العنوان الظاهرية زيادة بمقدار 128 تيرابايت. ولذلك، فربما لا تلاحظ هذه المشكلة في بيئات Windows 2012 R2. لمزيد من المعلومات، راجع الموضوع التالي في مركز التطوير Windows:

    حدود الذاكرة لإصدارات Windows و Windows Server
  • إذا كنت ترى النمو المستمر في مساحة العنوان الظاهرية حتى بعد تطبيق الإصلاح، يمكنك تحديد الاستعلامات أو العمليات التي تطلبها مساحات كبيرة من الذاكرة باستخدام Page_allocated الحدث الموسع. برنامج نصي نموذج يبدو مثل هذا:

    CREATE EVENT SESSION [memory_tracking] ON SERVERADD EVENT sqlos.page_allocated(    ACTION(package0.callstack,sqlos.cpu_id,sqlos.task_address,sqlos.worker_address,sqlserver.database_id,sqlserver.query_hash,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text)    WHERE ([number_pages]>(1)))ADD TARGET package0.event_file(SET filename=N'E:\Data\MSSQL11.MSSQLSERVER\MSSQL\Log\memory_tracking.xel')WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)GO
    عادة هي نسخ احتياطية من السجل وعمليات الصيانة الفهرس التي تحدث بشكل متكرر.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 3074434 - آخر مراجعة: 10/10/2016 02:28:00 - المراجعة: 9.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbsurveynew kbexpertiseadvanced kbfix kbmt KB3074434 KbMtar
تعليقات