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 bulk-uploads, bulk-imports en andere bulk operaties tijdens werkuren. 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 2 ingebouwde voorzieningen om inzicht in performance te verkrijgen. Enerzijds een ingebouwde benchmark waarmee de server kan worden "doorgemeten" m.b.t. de snelheid van CPU, disk en dergelijke. Anderzijds performance logging en rapportage waarmee kan worden gekeken hoe snel gemiddeld (of mediaan) pagina's worden gegenereerd en welke pagina's het meeste tijd kosten. Naast deze in OpenIMS ingebouwde voorzieningen is er een veelheid aan tools van bedrijven als Red Hat, Microsoft, HP en IBM om op allerlei manieren performance metingen te doen.
Met de performance logging van OpenIMS kan worden bepaald of OpenIMS in de keten (virtuele) werkplek - netwerk - OpenIMS de bottleneck vormt. Tevens kan, indien OpenIMS de bottleneck is, gekeken worden om welke functionaliteit het daarbij precies gaat. Denk bijvoorbeeld aan performance van de zoekmachine.
Deze en andere meetinstrumenten kunnen worden gebruikt om performance problemen op te lossen, of nog beter, voor te zijn. Bijvoorbeeld door af te spreken periodiek de performance statistieken te analyseren.
Verschillende technische componenten van een OpenIMS omgeving
Deze opsomming is nuttig om in de scenario's naar te kunnen verwijzen:
OpenIMS CMS / DMS server(s)
- Document opslag (HDD)
- Apache/PHP webserver (CPU/RAM)
- MySQL storage engine (HDD)
- Sphinx full text search engine (HDD)
OpenIMS conversie server(s)
- Apache/PHP/MySQL webserver (HDD/CPU/RAM)
- Neevia / Microsoft Office (HDD/CPU/RAM)
OCR server(s), EasyData, Abby of vergelijkbaar (HDD/CPU/RAM)
De basis, OpenIMS server specificaties
Voor OpenIMS conversie servers adviseert OpenSesame ICT minimaal:
- Een moderne Intel® Xeon® met 2 cores (4 treads).
- 4 GB Memory (RAM).
Als standaard OpenIMS CMS / DMS configuratie adviseert OpenSesame ICT minimaal:
- Een moderne Intel® Xeon® met 2 cores (4 treads).
- 4 GB Memory (RAM).
- Snelle (HDD) opslag, bijvoorbeeld dedicated SCSI.
Voor grotere configuraties (> 50 gebruikers of > 100.000 documenten) adviseert OpenSesame ICT minimaal:
- Een moderne Intel® Xeon® met 4 cores (8 treads).
- 16 GB Memory (RAM).
- Snelle (HDD) opslag, bijvoorbeeld dedicated SCSI voor documenten.
- SSD opslag voor de MySQL storage engine en Sphinx full text search engine.
Er is geen bezwaar tegen virtualisatie mits de betreffende virtuele server maar voldoende resources (zie bovenstaande) heeft.
Voor de omvang van de storage kan als vuistregel het 3-voudige aan ruimte van een fileserver genomen worden met een minimum van 250 GB. Deze factor kan worden verlaagd middels voorzieningen als "garbage collection" of het beperken van de mate waarin OpenIMS oude versies van documenten bewaard. Voor de omvang van SSD kan als vuistregel worden genomen 20% van de omvang van de document storage met een minimum van 100 GB. Voor alle vormen van storage adviseren we actieve monitoring van de beschikbare ruimte met een threshold van minimaal 50 GB.
Voor optimale beschikbaarheid adviseren we om een standby server in te richten in een ander rekencentrum dan de hoofdserver. OpenIMS beschikt standaard over replicatie voorzieningen welke hiervoor kunnen worden ingezet. Insteek is nadrukkelijk om standby te laten naijlen op productie (bijvoorbeeld middels nachtelijke repliactie) om problemen in de breedste zin des woords te kunnen ondervangen. Bij uitwijk omgevingen met real time replicatie kan bijvoorbeeld een SAN/disk crash of een OS crash zorgen dat zowel productie als uitwijk niet langer functioneren.
Scenario's voor verschillende mogelijke bottlenecks (in volgorde van waarschijnlijkheid)
Storage performance
Met name bij document management is storage performance de meest voorkomende bottleneck. En dan met name voor zoekoperaties. Standaard advies is hiervoor SSD storage in te zetten al dan niet in combinatie met RAID of een dedicated PCI Express-based SSD kaart. Indien, dan wel door het aantal gebruikers, dan wel door de aard van de zoekopdrachten een enkele server niet voldoende is 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 met name bij internationale organisaties met filialen over de hele wereld, waarbij bijvoorbeeld niet altijd voldoende netwerkcapaciteit tussen vestigingen beschikbaar is. Een enkele centrale server is dan minder gewenst. Hier kan de OpenIMS replicatie engine worden ingezet om meerdere separate OpenIMS omgevingen te creëren op meerdere locaties en hiertussen middels replicatie documenten en data uit te wisselen. Replicatie heeft praktische consequenties voor bijvoorbeeld locking en snelheid waarmee zaken beschikbaar zijn dus we adviseren dit altijd op voorhand goed af te stemmen.
CPU performance CMS/DMS servers
Aangezien OpenIMS met name de storage belast is de CPU zelden de bottleneck. Is de CPU de bottleneck (bijvoorbeeld bij een high traffic website) dan kan dit worden opgelost door meerdere Apache/PHP servers in te zetten en deze een MySQL storage engine server te laten delen, of ook de MySQL storage engine op meerdere servers in te zetten en replicatie (MySQL of OpenIMS) toe te passen. Replicatie heeft praktische consequenties voor bijvoorbeeld locking en snelheid waarmee zaken beschikbaar zijn dus we adviseren dit altijd op voorhand goed af te stemmen.