Star98
-
Upload
steve-oubre -
Category
Documents
-
view
142 -
download
4
Transcript of Star98
Two Generations of Client / Server Performance Testing
Steven J. Oubre
MedicaLogic, Inc.
May 7, 1998
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.
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
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
Client / Server Performance Testing5
How many?
User Workstations
Server Under Test
How many workstationscan be used with a server with acceptableperformance?
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:
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
Client / Server Performance Testing8
Player Controllers
QALoadConductor
Server Under Test
Compuware QALoad
Actual Clients
EmulatedClients
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
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
Client / Server Performance Testing11
Test Planning
• Define a typical encounter in a clinic including roles within the clinic.
• Front Desk, Nurse, and Doctor
Client / Server Performance Testing12
QALoad Scripting
Client WS
Select xxxx from yyy
Update aaaa with zzz
Trace File
QALoad/Client-ServerScript
QALoad/WinScripts
Server
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”
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?
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.
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.
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.
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
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
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