ServiceNow Database Compaction

Voorkom dat je extra moet betalen door ongebruikte opslag terug te winnen

Een standaard ServiceNow-instance kan groeien tot 4 TB voordat ServiceNow bij je aanklopt om te melden dat je instance te groot wordt en dat je extra capaciteit moet aanschaffen om je database op te slaan.

Geen paniek. 4 TB is veel, en ik heb met klanten gewerkt die hun instance al tientallen jaren draaien en nauwelijks extra opschoning hebben gedaan, behalve wat oude tickets en de standaard OOB-opschoning.

Onlangs werden we echter gevraagd om te kijken naar de instance van een klant die al extra opslag had gekocht en zelfs met ServiceNow in gesprek was om die extra opslag opnieuw uit te breiden. Hun database was gegroeid tot 6,9 TB. De teams die aan het platform werkten, hadden al extra opschoningsregels geïmplementeerd om oude records (en bijlagen!) te verwijderen die niet langer bewaard hoefden te worden, maar dit resulteerde niet in een voldoende vermindering van de database-footprint om extra kosten te voorkomen.

Er is documentatie beschikbaar over database-footprints (bekijk zeker de uitgebreide bibliotheek met Community-artikelen van Mark Roethof), maar een artikel van Dominik Simunek dat ik toevallig tegenkwam, bleek voor ons een enorme vondst te zijn (link onderaan deze blog). Hij gaf inzicht in ServiceNow Database Compaction, waarmee we 2 TB opslagruimte hebben teruggewonnen op onze instance (ja, TWEE TERABYTE, geen typfout).

En alles wat we hoefden te doen, was enkele systeemproperties toevoegen aan de instance en deze optimaliseren voor onze tabellen. Lees vooral verder als je benieuwd bent hoe je dit zelf ook kunt doen (indien nodig).

Databases groeien. Data wordt toegevoegd en verwijderd. Maar bij het verwijderen van data krijg je de gebruikte opslagruimte niet automatisch terug. Database Compaction geeft die ruimte wel terug.

TABELLEN
Er zijn een aantal tabellen die je kunt gebruiken om inzicht te krijgen in wat er gebeurt met de databasegrootte van je instance.

[sys_physical_table_stats] – toont de tabelgrootte in GB, het aantal records (in duizenden) en de geschatte hoeveelheid GB die kan worden teruggewonnen. Houd er rekening mee dat deze waarden kunnen afwijken van de daadwerkelijke data in de tabel of van het database-footprintoverzicht in NowSupport.

[sys_schema_change] – toont wijzigingen aan tabellen via verschillende Alter Types. Als je ‘Compact Table’ selecteert als Alter Type, zie je welke tabellen zijn aangepast door de Database Compaction-job.

[sys_compaction_run] – toont de tabellen waarop Database Compaction is uitgevoerd. Je ziet start- en eindtijd en, voor ons het belangrijkst, de reden waarom een tabel niet is gecompacteerd (de job controleert elke tabel of compaction nodig is).

PROPERTIES
De tabel [sys_compaction_run] laat zien waarom een tabel niet wordt gecompacteerd. Dat is gebaseerd op meerdere voorwaarden die standaard worden bepaald door instellingen. Deze instellingen kunnen worden aangepast (zonder prestatierisico’s, zo hebben wij ervaren). Hiervoor moet je enkele systeemproperties aanmaken. Deze bestaan om onduidelijke redenen niet standaard OOB.

Property Description Default value
glide.db.compaction.criteria.reclaim_size_mb Minimum reclaim size (MBs) for a table to be eligible for the database compaction 10240
glide.db.compaction.max_tables_compacted_timeframe_days Number of days for the maximum tables compacted timeframe 1
glide.db.compaction.criteria.max_table_size_mb Maximum table size (MBs) for a table to be eligible for database compaction 102400 (100 GB)
glide.db.compaction.criteria.reclaim_percentage Minimum reclaim percentage (%) for the table to be eligible for database compaction 50
glide.db.compaction.criteria.max_row_count Maximum row count for the table to be eligible for database compaction 100000000 (100 million)
glide.db.compaction.max_tables_compacted Maximum number of tables to be compacted within the defined timeframe 5

Met deze standaardinstellingen worden dagelijks maximaal 5 tabellen gecompacteerd, met maximaal 100 miljoen records en een maximale grootte van 100 GB, mits er minstens 10 GB kan worden teruggewonnen en dat minimaal 50% van de tabelgrootte is.

Zoals je kunt voorstellen zorgt dit voor enige Database Compaction, maar sluit het ook veel tabellen uit vanwege de voorwaarden.

Wij hebben deze waarden aangepast om meer tabellen toe te laten en sneller ruimte terug te winnen. Met maximaal 8 tabellen per dag, een maximum van 500 miljoen records, een maximale grootte van 1 TB, een minimale reclaim-percentage van 10% en een minimale reclaim-grootte van 5 GB waren we verbaasd over de resultaten.

Binnen twee weken hebben we 2 TB opslagruimte teruggewonnen door slechts 6 systeemproperties aan te maken en te optimaliseren. Een reductie van 28%, waarmee onze klant weer compliant was.

Benieuwd welke tabellen het grootst zijn in jouw instance? Bekijk het OOB-dashboard ‘Telemetry – Table Growth’. Maar zoals altijd: als je zaken bespreekt met ServiceNow, gebruik dan de Database Footprint-data uit NowSupport. De data in je instance is indicatief; het exacte overzicht vind je daar.

Dominik Simunek’s blog (highly recommended read!)
ServiceNow Database Compaction

meer inzichten

ServiceNow Platform Analytics

Stop met omslachtige dashboards en rapporten! ServiceNow Platform Analytics is er! Deze nieuwe rapportagemethode biedt een dynamische en gebruiksvriendelijke manier om uw data te visualiseren. Zo kunt u trends identificeren, workflows optimaliseren en slimmere beslissingen nemen.

Lees meer

Wat is ServiceNow?

Problemen met handmatige onboarding en trage HR-processen? ServiceNow automatiseert workflows, waardoor u tijd en geld bespaart. Ontdek hoe WhiteBrick u kan helpen bij het implementeren van Employee Workflows voor tevredenere en productievere medewerkers.

Lees meer

GET THE RESUME APP – Your future of CV management