Performance, optimale hardware voor OpenIMS

Performance is een complex en soms ook weerbarstig onderwerp. Performance is deels subjectief en wordt bepaald door de volledige keten van werkplek, netwerk en servers. Performance kan ook tijdelijk nadelig beïnvloed worden door bulkuploads, bulkimports en andere bulkgewijze operaties. Bij gedeelde hardware (virtualisatie) kan de performance ook beïnvloed worden door andere (virtuele) servers die dezelfde hardware (CPU, RAM, opslag) gebruiken als OpenIMS. Dedicated hardware leidt dan ook vrijwel altijd tot de beste performance. De insteek van deze documentatie is met name technisch. De verschillende scenario’s in deze documentatie kunnen resulteren in aanvullende kosten voor hardware en/of inrichting.

Meetinstrumenten

OpenIMS beschikt over twee ingebouwde voorzieningen om inzicht te krijgen in de prestaties. Enerzijds is er een ingebouwde benchmark waarmee de server kan worden doorgemeten met betrekking tot de snelheid van de CPU, de schijf en dergelijke. Anderzijds zijn er voorzieningen voor performance logging en rapportage, waarmee kan worden bekeken hoe snel gemiddeld (of mediaan) pagina's worden gegenereerd en welke pagina's de meeste tijd kosten. Naast deze in OpenIMS ingebouwde voorzieningen is er een veelheid aan hulpmiddelen van bedrijven als Red Hat, Microsoft, HP en IBM om op allerlei manieren prestaties te meten.

Met de performance logging van OpenIMS kan worden bepaald of OpenIMS binnen de keten (virtuele) werkplek - netwerk - OpenIMS de bottleneck vormt. Tevens kan, indien OpenIMS de bottleneck blijkt te zijn, worden onderzocht om welke functionaliteit het precies gaat. Denk bijvoorbeeld aan de performance van de zoekmachine.

Deze en andere meetinstrumenten kunnen worden ingezet om prestatieproblemen op te lossen, of nog beter, te voorkomen. Dit kan bijvoorbeeld door af te spreken om periodiek de prestatie statistieken te analyseren.

De basis, OpenIMS server specificaties

Voor OpenIMS conversieservers adviseert OpenSesame ICT minimaal:

  • Een moderne Intel of AMD server CPU met 2 cores (4 threads).
  • 4 GB RAM.

Als standaard OpenIMS CMS / DMS configuratie adviseert OpenSesame ICT minimaal:

  • Een moderne Intel of AMD server CPU met 2 cores (4 threads).
  • 8 GB RAM.
  • Snelle HDD of SSD opslag voor documenten.
  • Lokale NVMe SSD opslag (geen SAN of NAS) voor de MySQL/MariaDB storage engine en Sphinx fulltext search engine.

Voor grotere configuraties (> 50 gebruikers of > 100.000 documenten) adviseert OpenSesame ICT minimaal:

  • Een moderne Intel of AMD server CPU met 4 cores (8 threads).
  • 16 GB RAM.
  • Snelle HDD of SSD opslag voor documenten.
  • Lokale NVMe SSD opslag (geen SAN of NAS) voor de MySQL/MariaDB storage engine en Sphinx fulltext search engine.

Er is geen bezwaar tegen virtualisatie mits de betreffende virtuele server over voldoende resources (zie bovenstaande) beschikt. Dedicated servers leveren meestal wel betere prestaties.

Voor de grootte van de document opslag kan als vuistregel het drievoudige aan ruimte van een bestandsserver worden aangenomen, met een minimum van 250 GB. Deze factor kan worden verlaagd door middel van voorzieningen zoals "garbage collection" of door het beperken van de mate waarin OpenIMS oude versies van documenten bewaart. Voor de grootte van MySQL/MariaDB/Sphinx SSD-opslag kan als vuistregel 10% van de grootte van de documentopslag worden aangehouden, met een minimum van 100 GB. Voor alle vormen van opslag adviseren we een actieve monitoring van de beschikbare ruimte, waarbij een minimumdrempel van minstens 50 GB wordt gehanteerd.

Voor optimale beschikbaarheid adviseren we om een stand-byserver in te richten in een ander rekencentrum dan de hoofdserver. OpenIMS beschikt standaard over replicatievoorzieningen die hiervoor kunnen worden ingezet.

Scenario's voor verschillende mogelijke bottlenecks (in volgorde van waarschijnlijkheid)

Storage performance

Vooral bij documentbeheer is de prestatie van opslag het meest voorkomende knelpunt, met name bij zoekoperaties. Het standaardadvies hiervoor is om op de OpenIMS-server moderne dedicated NVMe SSD-opslag te gebruiken (geen NAS of SAN). Als, vanwege het aantal gebruikers of de aard van de zoekopdrachten, een enkele server niet volstaat, kunnen meerdere zoekmachines naast elkaar worden ingezet.

CPU performance conversieservers en/of OCR servers

Bij conversie en OCR-servers vormt juist de CPU de bottleneck. Dit kan worden opgelost door het aantal servers te verhogen en deze parallel te laten werken.

Netwerk performance

Dit speelt vooral bij internationale organisaties met vestigingen wereldwijd, waarbij bijvoorbeeld niet altijd voldoende netwerkcapaciteit tussen de vestigingen beschikbaar is. Een enkele centrale server is dan minder gewenst. Hier kan de OpenIMS-replicatie-engine worden ingezet om meerdere afzonderlijke OpenIMS-omgevingen te creëren op verschillende locaties en om tussen deze omgevingen documenten en data uit te wisselen via replicatie. Replicatie heeft praktische consequenties, bijvoorbeeld voor vergrendeling en de snelheid waarmee gegevens beschikbaar zijn, dus we adviseren om dit altijd vooraf goed af te stemmen.

CPU performance CMS/DMS servers

Aangezien OpenIMS voornamelijk de opslag belast, is de CPU zelden de bottleneck. Is de CPU wél de bottleneck (bijvoorbeeld bij een website met veel verkeer), dan kan dit worden opgelost door meerdere Apache/PHP-servers in te zetten die een MySQL/MariaDB-server delen.

Altijd als eerste op de hoogte van de laatste nieuwtjes?

Schrijf je in voor onze nieuwsbrief