Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Μετά την εφαρμογή αυτής της ενημέρωσης, πρέπει να προσθέσετε τη σημαία ανίχνευσης-T8075 ως παράμετρο εκκίνησης για να ενεργοποιήσετε αυτήν την αλλαγή.

Συμπτώματα

Όταν εκτελείτε ένα ερώτημα σε μια έκδοση 64-bit του Microsoft SQL Server 2012, λαμβάνετε ένα μήνυμα σφάλματος "out-of-Memory" παρόμοιο με το ακόλουθο στο αρχείο καταγραφής σφαλμάτων του SQL Server:

Απέτυχε η εκχώρηση σελίδων: FAIL_PAGE_ALLOCATION 513

Τα ερωτήματα έχουν πολύ χρόνο για να ολοκληρώσουν την εκτέλεση και να αντιμετωπίσουν SOS_MEMORY_TOPLEVELBLOCKALLOCATOR αναμονή. Όταν εξετάζετε τα παρακάτω σημεία πληροφοριών, θα διαπιστώσετε ότι υπάρχει πολύ χαμηλός διαθέσιμος χώρος εικονικών διευθύνσεων:

  • DBCC MEMORYSTATUS-διαδικασία/σύστημα υπολογίζει την ενότητα-διαθέσιμη εικονική μνήμη

  • DMV: sys.dm_os_process_memory virtual_address_space_available_kb στήλης

Αυτές οι τιμές ξεκινούν γύρω στα 8 terabyte (TB) σε μια διεργασία x64 και συνεχίζουν να κατεβαίνουν και να φτάνουν σε λίγα gigabyte (GB).  Όταν βρίσκεστε στο στάδιο όπου ο διαθέσιμος χώρος εικονικών διευθύνσεων είναι πολύ μικρός, τα ερωτήματα που επιχειρούν να εκτελέσουν εκχώρηση μνήμης μπορεί επίσης να αντιμετωπίσουν έναν τύπο αναμονής του CMEMTHREAD. Τα παρακάτω σημεία δεδομένων θα συνεχίσουν να αυξάνονται με την πάροδο του χρόνου:

  • DMV: sys.dm_os_process_memory και sys.dm_os_memory_nodes virtual_address_space_reserved_kb στηλών

  • DBCC MEMORYSTATUS-ενότητα "διαχείριση μνήμης"-Δεσμευμένη VM

Αυτές οι τιμές συνήθως αυξάνουν σε πολλαπλάσια της τιμής "Μέγιστος διακομιστής μνήμης" έως σχεδόν 8 TB.

Αιτία

Όταν η διεργασία SQL Server έχει φθάσει στην κατάσταση όπου ο συνολικός διακομιστής Memory = Memory Server-Target = Max Memory Server, υπάρχουν πολιτικές στη διαχείριση μνήμης του SQL Server για να επιτρέψετε στις νέες εκχωρήσεις να ζητούν πολλές σελίδες 8 KB για να επιτύχουν προσωρινά. Επαναλαμβανόμενο μοτίβο εκχώρησης κάτω από μια τέτοια συνθήκη μπορεί να προκαλέσει κατακερματισμό των μπλοκ μνήμης και κατανάλωση του χώρου εικονικών διευθύνσεων. Εάν αυτή η διαδικασία επαναλαμβάνεται πολλές φορές, ο χώρος εικονικών διευθύνσεων του SQL Server θα εξαντληθεί και θα παρατηρήσετε τα συμπτώματα που αναφέρθηκαν προηγουμένως.

Επίλυση

Πληροφορίες αθροιστικής ενημέρωσης

Το πρόβλημα διορθώθηκε για πρώτη φορά με την ακόλουθη αθροιστική ενημέρωση του SQL Server.

 

Κάθε νέα αθροιστική ενημέρωση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη αθροιστική ενημέρωση. Συνιστούμε να κάνετε λήψη και εγκατάσταση των πιο πρόσφατων αθροιστικών ενημερώσεων για τον SQL Server:

Αυτή η επείγουσα επιδιόρθωση αποτρέπει τη μνήμη και τη συνεχή μείωση του διαθέσιμου χώρου εικονικών διευθύνσεων που ενδέχεται να αντιμετωπίσετε.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".

Περισσότερες πληροφορίες

  • Το Windows 2012 R2 επιτρέπει στο χώρο εικονικών διευθύνσεων να αυξηθεί τόσο μεγάλο όσο το 128 TB. Επομένως, ενδέχεται να μην παρατηρήσετε αυτό το πρόβλημα στα περιβάλλοντα 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

    Συνήθως αυτά είναι αρχεία καταγραφής αντιγράφων ασφαλείας και λειτουργίες συντήρησης ευρετηρίου, τα οποία προκύπτουν συχνά.

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×