Συμπτώματα
Όταν εκτελείτε μια παρουσία του Microsoft SQL Server 2017 μέσα σε ένα κοντέινερ του Linux Docker, ενδέχεται να εμφανιστεί ένα μήνυμα σφάλματος "out-of-Memory".
Αιτία
Ο SQL Server σε Linux από προεπιλογή χρησιμοποιεί ένα μαλακό όριο του 80% της συνολικής φυσικής μνήμης όταν δεν είναι ενεργοποιημένη η ρύθμιση παραμέτρων μνήμης. memorylimitmb. Για τα κοντέινερ Docker, η SQL χρησιμοποιούσε για να εξετάσει το 80% της συνολικής μνήμης κεντρικού υπολογιστή αντί να περιοριστεί σε μνήμη 80% που έχει εκχωρηθεί στο κοντέινερ του Docker. Αυτό το εσφαλμένο όριο μνήμης επιτρέπει στον SQL Server να προσπαθήσει να καταναλώσει μνήμη μεγαλύτερη από αυτή που είναι διαθέσιμη για το κοντέινερ και μπορεί να είναι υποψήφιος για τον τερματισμό από τον δολοφόνο της μνήμης.
Σημείωση Όταν δημιουργείτε την εικόνα του Docker πρέπει να καθορίσετε-m για να περιορίσετε τη μνήμη του Docker. Ανατρέξτε στο άρθρο παρακάτω για περισσότερες πληροφορίες.
Επίλυση
Μια επιδιόρθωση για αυτό το πρόβλημα περιλαμβάνεται στην παρακάτω ενημέρωση για τον SQL Server:
Αθροιστική ενημερωμένη έκδοση 10 για τον SQL Server 2017
Σημείωση Εάν η ρύθμιση παραμέτρων Memory. memorylimitmb δεν έχει ρυθμιστεί, τότε αυτή η επιδιόρθωση επιτρέπει στον SQL Server να περιορίσει τον εαυτό του σε ένα μαλακό όριο του 80% της εκχωρημένης μνήμης στο κοντέινερ.
Πληροφορίες για τις εκδόσεις του SQL Server
Κάθε νέα δομή για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και τις επιδιορθώσεις ασφαλείας που βρίσκονταν στην προηγούμενη δομή. Συνιστάται να εγκαταστήσετε την πιο πρόσφατη έκδοση για την έκδοση του SQL Server που διαθέτετε:
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".
Αναφορές
Μάθετε περισσότερα σχετικά με την τυπική ορολογία που χρησιμοποιεί η Microsoft για την περιγραφή ενημερώσεων λογισμικού.