Star98

20
Two Generations of Client / Server Performance Testing Steven J. Oubre MedicaLogic, Inc. May 7, 1998

Transcript of Star98

Page 1: Star98

Two Generations of Client / Server Performance Testing

Steven J. Oubre

MedicaLogic, Inc.

May 7, 1998

Page 2: Star98

Client / Server Performance Testing2

Mission Statement

The mission of MedicaLogic is to develop, marketand support electronic medical records products for the office and clinic that enables cliniciansto deliver higher quality care at lower cost and in teamwork with strategic partners, to deliver a comprehensive EMR solution across the continuum of care.

Page 3: Star98

Client / Server Performance Testing3

Product Architecture

LogicianCore EMR

Standard Hardware/Network

Oracle RDMS

StandardScreenDesigns

ClinicalPaths &Outcomes(Enc. Forms,Reports)

KnowledgeBases

LinkLogicEDI Interface

Data InterchangeTo/From OtherSystemsvia HL7/ASTMor ANSI Stds

Indius C++ Class Library

MLI C++ Class Library

Microsoft WindowsDesktop OSStandard Server OS

Page 4: Star98

Client / Server Performance Testing4

Appointments

Reviewstatus

In-officeencounter

Update probs, meds;enter orders, services;

create note

Readflag

View contexttake action

Remove, reply,or forward flag

Unsigneddocuments

Review andsign document

Clinical Workflows Flags

Page 5: Star98

Client / Server Performance Testing5

How many?

User Workstations

Server Under Test

How many workstationscan be used with a server with acceptableperformance?

Page 6: Star98

Client / Server Performance Testing6

Scalability Testing

• Server characterization (memory, disk space, processor speed needed for a given size clinic to run product with acceptable performance.)

• Recommended computer configurations per release for our customers

Objectives:

Page 7: Star98

Client / Server Performance Testing7

Alternative Strategies and Factors

•External Lab vs. Load Testing Tool

• Requirement: 500 workstations with multiple servers supporting our supported OS’s via Ethernet 10/100Base-T.

•Factors we considered:

• to perform each release

•Amount of expertise gained at MLI

•Decision: Compuware’s QALoad Load Testing Tool

Page 8: Star98

Client / Server Performance Testing8

Player Controllers

QALoadConductor

Server Under Test

Compuware QALoad

Actual Clients

EmulatedClients

Page 9: Star98

Client / Server Performance Testing9

QALoad/Client SimulationsClient to

server call:

(SQL)

Keyboard, Mouse &

Display

To network & servers

QALoad/CS simulatesthese “middleware” functions

UserInterface

ApplicationLogic

Middleware

Logician running

Page 10: Star98

Client / Server Performance Testing10

Script Capture & ConversionScript Capture & Conversion

Test Planning Test Planning

Test Runs, Analysis & ReportingTest Runs, Analysis & Reporting

Parameterization & DebuggingParameterization & Debugging

Project Phases

Page 11: Star98

Client / Server Performance Testing11

Test Planning

• Define a typical encounter in a clinic including roles within the clinic.

• Front Desk, Nurse, and Doctor

Page 12: Star98

Client / Server Performance Testing12

QALoad Scripting

Client WS

Select xxxx from yyy

Update aaaa with zzz

Trace File

QALoad/Client-ServerScript

QALoad/WinScripts

Server

Page 13: Star98

Client / Server Performance Testing13

Patient Encounter.DAT000-00-0001

000-00-0002

Patient Encounter Script 2 GET_DATA socsecno = “000-00-0002”

Patient Encounter Script 2 GET_DATA socsecno = “000-00-0002”

Scripts & Data Pools

Patient Encounter.C GET_DATA strncpy( socsecno, VAR1_DATA, 11 ); socsecno[11] = '\0';

Patient Encounter Script 1 GET_DATA socsecno = “000-00-0001”

Patient Encounter Script 1 GET_DATA socsecno = “000-00-0001”

Page 14: Star98

Client / Server Performance Testing14

Performance Bottlenecks

• Improper / poor disk configurations on database server

• “Under-powered” database server hardware

• Sub-optimal lan / wan configurations

• Poor database / application tuning

• Is the cost to correct these problems for you or your customers worth it?

Page 15: Star98

Client / Server Performance Testing15

Common RAID Levels

• RAID 0 - Disk Striping without parity; very fast but no data protection

• RAID 1 - Disk Mirroring; very good data protection but requires 2X number of disks to hold same data

• RAID 0+1 - Mirrored Stripe; fast and reliable

• RAID 5 - Disk Stripe with parity; not quite as fast as 0+1 and reliability is limited

• Cost vs. Performance- In general, RAID 0+1 gives the best performance

but at the cost of the number of drives (and controllers?) needed to implement.

Page 16: Star98

Client / Server Performance Testing16

Hardware vs. Software RAID

• Hardware RAID implementations are generally faster due to RAID I/O and management being offloaded from server OS but are more expensive.

• Ability to perform software RAID implementations exist in Netware and NT (and other NOS’s) without the additional cost of hardware RAID controller(s).

• Cost vs. Performance- Depends on how mission critical the database

server is. Hardware solutions are available with added fault tolerance and high availability options.

Page 17: Star98

Client / Server Performance Testing17

Splitting Database Files

• It has been known for some time that splitting Oracle data files across multiple disk devices can improve performance.

• Not immediately clear is how the different Oracle data files should be deployed on different disk devices.- The key issue is to minimize head contentions

for reads and writes.

- Oracle has several white papers available on this and related issues.

Page 18: Star98

Client / Server Performance Testing18

Lan / Wan Configurations

• Know what your network loads and bandwidths are.- Proper network segmentation improves overall

performance and minimizes collisions

• MedicaLogic has published a WAN Planning Guide for our customer use based on network load testing performed inhouse.- Connection speeds tested range from 28.8Kbps

to 100Mbit/s including Frame Relay and ISDN connections

• Alternative connection solution(s)- Windows Terminal Server / Citrix MetaFrame

Page 19: Star98

Client / Server Performance Testing19

Single DB 3-tier System

MetaFrame Serverw/Logician

PClow-endPC

WyseCruisePad® winTermweb

browser

WAN (T1+ bandwidth) Screen update traffic

10Mbit LAN

Oracle Logician Server

100Mbit LANSQLNet traffic(ATM or Gigabit Ethernet later)

MetaFrame Serverw/Logician

Clinic A

Main Campus

Clinic B

MetaFrame Serverw/Logician

Page 20: Star98

Client / Server Performance Testing20

Database / Application Tuning• Tuning helps achieve improved database

performance– Use of Oracle OCI instead of ODBC for database

communications– Increase use of host variables, cursors, and indexing

to reduce SQL query parsing – Reduce and eliminate the number of redundant

queries

– Modify Oracle database schema to minimize table contentions

• SQL_AREA cache hit ratio in Oracle measures this level of performance (a recommended ratio is 95%)- This is Oracle’s area for client-submitted SQL

statements

• An application with a cache hit ratio of 38% translates to Oracle having to fully parse and validate a SQL statement over 62% of the time - highly CPU intensive