sqlschool.gr logo

articles

Articles of SQLschool.gr Team

Tip of the Day: When Buffer Cache does clean?

Antonios Chatzipavlis
Thursday 12 May 2011

Σε τακτά χρονικά διαστήματα ή σε περιπτώσεις που υπάρχει στέρηση σε μνήμη, ένα thread αναλαμβάνει να κάνει τον καθαρισμό της buffer cache από τις σελίδες που δεν έχουν πρόσφατα χρησιμοποιηθεί.

Το thread αυτό ονομάζεται Lazywriter και ο τρόπος με τον οποίο αποφασίζει ποιες είναι αυτές που θα φύγουν από την buffer cache είναι και ονομάζεται Least Recently Used (LRU) policy.

Least Recently Used policy

Στο header της κάθε σελίδας όταν αυτή είναι στη μνήμη αποθηκεύονται πληροφορίες που κρατάνε τις τελευταίες δύο φορές (time) που αυτή έχει χρησιμοποιηθεί. Επίσης υπάρχει ένας μετρητής ο οποίος κάθε φορά που γίνεται ο περιοδικός έλεγχος (Lazywriter) αυτός μειώνεται. Έτσι στην περίπτωση που χρειάζεται να ελευθερωθεί χώρος στη buffer cache οι σελίδες με τη μικρότερη τιμή στο μετρητή είναι αυτές που φεύγουν από αυτή.

Αν θέλουμε να δούμε πόσο χρόνο (μέση τιμη) οι σελίδες μένουν στην buffer cache μπορούμε να το δούμε με την χρήση του Page Life Expectancy performance counter.

Lazywriter operation

Είναι ένα thread το οποίο τακτικά ελέγχει το μέγεθος του free buffer list.

O SQL Server προσπαθεί να συντηρήσει ένα αριθμό από ελεύθερες σελίδες στην buffer cache με σκοπό να μπορεί να ανεβάζει σε αυτή γρηγορότερα σελίδες, αυτός ο αριθμός ελέγχεται από το free buffer list.

Όποτε γίνεται ο συγκεκριμένος έλεγχος (ή γίνεται checkpoint ή read operation που χρειάζεται να διαβάσει σελίδες από το δίσκο και να τις ανεβάσει στην buffer cache) και δει ότι ο αριθμός αυτός είναι μικρότερος από αυτό που έχει το free buffer list τότε με βάση το LRU policy οι σελίδες αυτές φεύγουν από την buffer cache.

Στην περίπτωση που μια σελίδα είναι dirty και εμπίπτει στο LRU policy τότε αυτή γράφεται στο δίσκο (data file) πριν χαρακτηριστεί σαν σελίδα που μπορεί να φύγει από την buffer cache.

Antonios Chatzipavlis

Antonios Chatzipavlis

Antonios Chatzipavlis is a highly experienced Data Solutions Consultant and Trainer. He has been working in the IT industry since 1988, holding various roles such as senior developer, IT Manager, Data & AI Solutions Architect and Consultant.

Since 1995, Antonios has focused on modern technologies and software development tools, primarily by Microsoft. He has specialized in Data & AI since 2000, with expertise in Microsoft Data Platform (SQL Server, Azure SQL Databases, Azure Synapse Analytics, Microsoft Fabric, Power BI, AI) and Databricks.

Antonios is also a Microsoft Certified Trainer (MCT) for over 25 years, has been recognized as a Microsoft Most Valuable Professional (MVP) in Data Platform since 2010 and he is in the Data Expert 40 Powerlist 2024 by Boussias. He is the co-founder and visionary behind XLYTiCA, a company dedicated to Data & AI solutions.

Episode

Task Flows in Microsoft Fabric

image

More Episodes...

Tip

Get Certified: Become a Fabric Data Engineer

More Tips...

Become a member

If you want to receive updates from us become a member to our community.

Connect

Explore

Learn

sqlschool.gr © 2010-2025 All rights reserved

This site uses cookies for operational and analytics purposes only. By continuing to browse this site, you agree to their use.