BBahmni 한국어 매뉴얼검색
한국어 번역 완료
한국어English

AWS 및 Gatling 기반 Bahmni Lite 성능 기준선

다음 상황에서 여러 기준선 스냅샷을 기록하고 지속적으로 갱신하는 문서입니다.

  • Troubleshooting and applying a patchChanging Software or 네트워크 configurationsAdding new scenarios and changing load share

소스 코드: https://github.com/Bahmni/performance-test

⭕️ 자동화 기술 스택

관련 문서: Scala

⭕️ 현재 스냅샷

40 동시 사용자 - 구성하드웨어Performance environment was running on AWS EKS Custer with single node

노드(EC2: t3-large)

  • RAM 8GB2 vCPU 100GB 보조 스토리지AWS LINUX x86_64

데이터베이스(AWS RDS: db.t3.xlarge)

  • RAM 16GB, 4 vCPU (2 core, 2.5 GHz Intel Scalable Processor)100GB 보조 스토리지MySQL, max_connections = 1304

소프트웨어

OpenMRS Tomcat - 서버

OpenMRS - 힙

  • 초기 힙: 1024 MB최대 힙: 1536 MB

-Xms1024m -Xmx1536m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=1024m -XX:InitialCodeCacheSize=64m -XX:ReservedCodeCacheSize=96m -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=40 -XX:+UseParNewGC -XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSCompactWhenClearAllSoftRefs -XX:CMSInitiatingOccupancyFraction=85 -XX:+CMSScavengeBeforeRemark -XX:+UseGCOverheadLimit -XX:+UseStringDeduplication

OpenMRS 연결 풀링

📗 현재 결과 - 동시 사용자 40명

  • 네트워크: 60 Mbps기간: 24 hours부하 증가 시간: 5 분데이터베이스 사전 상태: 75000 환자 레코드

보고서 링크: https://bahmni.github.io/performance-test/longduration_report-20230130141239257_40users_24hrs_all_omods_afterhipfix/index.html

보고서 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)95th Percentile (ms)99th Percentile (ms)Max Time (ms)
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%57601524846481389
Existing Patient Search using ID → Start OPD Visit30%4320544726761977
Existing Patient Search using Name → Start OPD Visit20%43201193525071492
Upload Patient Document10%14401424825811135
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%57601364405645317291

70 동시 사용자 - 구성하드웨어Performance environment was running on AWS EKS Custer with single node

노드(EC2: m5-xlarge)

  • RAM 16GB4 vCPU 100GB 보조 스토리지AWS LINUX x86_64

데이터베이스(AWS RDS: db.t3.xlarge)

  • RAM 16GB, 4 vCPU (2 core, 2.5 GHz Intel Scalable Processor)100GB 보조 스토리지MySQL, max_connections = 1304

소프트웨어

OpenMRS Tomcat - 서버

OpenMRS - 힙

  • 초기 힙: 1024 MB최대 힙: 2536 MB

-Xms1024m -Xmx2536m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=1024m -XX:InitialCodeCacheSize=64m -XX:ReservedCodeCacheSize=96m -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=40 -XX:+UseParNewGC -XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSCompactWhenClearAllSoftRefs -XX:CMSInitiatingOccupancyFraction=85 -XX:+CMSScavengeBeforeRemark -XX:+UseGCOverheadLimit -XX:+UseStringDeduplication

OpenMRS 연결 풀링

📗 현재 결과 - 동시 사용자 70명

  • 네트워크: 60 Mbps기간: 24 hours부하 증가 시간: 5 분데이터베이스 사전 상태: 90500 환자 레코드

보고서 링크: https://bahmni.github.io/performance-test/longduration_report-20230213133118638_70users_24hours_AfterHIPfix_m5xlarge/index.html

보고서 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)95th Percentile (ms)99th Percentile (ms)Max Time (ms)
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%10080130252309674
Existing Patient Search using ID → Start OPD Visit30%7200493054642660
Existing Patient Search using Name → Start OPD Visit20%7200135278348573
Upload Patient Document10%2160111206253459
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%10080998233126084134

🔰 관찰 결과:

  • 의사 진료: 동시 사용자 40명 및 70명 테스트 모두에서 이 작업의 최대 응답 시간이 상당히 높았습니다. 관련 서비스를 분석 중이며 성능 개선 우선순위에 포함할 예정입니다.

참고: 이 테스트는 실제 임상 활동과 비교할 때 Bahmni Lite 사용자에게 가장 높은 부하가 걸리는 상황을 가정했습니다. 따라서 일부 작업의 최대 응답 시간이 아직 최적이 아니더라도 클러스터에서는 제안된 동시 사용자 수로 안전하게 구현할 수 있다고 판단합니다.

⭕️ 기본 구성

아래 상세 정보는 Bahmni Lite 성능 분석을 시작할 때 서로 다른 구성으로 수행한 각 테스트에서 관찰한 과거 데이터입니다. 참조 기준이 아니라 데이터 확인 용도로만 사용하십시오.

Details하드웨어Performance environment was running on AWS EKS Custer with single node

노드(EC2: m5-xlarge)

  • RAM 16GB4 vCPU 100GB 보조 스토리지AWS LINUX x86_64

데이터베이스(AWS RDS: db.t3.xlarge)

  • RAM 16GB, 4 vCPU (2 core, 2.5 GHz Intel Scalable Processor)100GB 보조 스토리지MySQL, max_connections = 1304

소프트웨어

OpenMRS Tomcat - 서버

OpenMRS - 힙

  • 초기 힙: 256 MB최대 힙: 768 MB

-Xms256m -Xmx768m -XX:PermSize=256m -XX:MaxPermSize=512m

OpenMRS 연결 풀링

📙 10 동시 사용자Detailsnote네트워크: 30 MBPS

기간: 30분

부하 증가 시간: 3분

데이터베이스 사전 상태: 2104 활성 환자 with 9288 관찰값

Report Link: https://bahmni.github.io/performance-test/baseline_report-20220911073147512_10users_30분_768mb/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20220911073147512_10users_30mins_768mb/index.html

보고서 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)Max Time (ms)
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%1741001077
Existing Patient Search using ID → Start OPD Visit30%1062431550
Existing Patient Search using Name → Start OPD Visit20%1072431437
Upload Patient Document10%272282169
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%1871852092

📙 동시 사용자 25명

Report Link: https://bahmni.github.io/performance-test/baseline_report-20220912043950582_25users_15분_2gb/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20220912043950582_25users_15mins_2gb/index.html

🔰 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)Max Time (ms)
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%861611193
Existing Patient Search using ID → Start OPD Visit30%743201113
Existing Patient Search using Name → Start OPD Visit20%643101144
Upload Patient Document10%21213843
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%107259846

📙 동시 사용자 40명 - 표준 트래픽 조건

Report Link: https://bahmni.github.io/performance-test/baseline_report-20220912053731908_40users_15분_2gb/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20220912053731908_40users_15mins_2gb/index.html

🔰 관찰 결과:

  • OpenMRS Pod 사용량: 4.15GB 메모리 및 2.59 CPUOverall Cluster was at 5.2GB RAM and 2.9 CPU

보고서 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)Max Time (ms)
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%1301621523
Existing Patient Search using ID → Start OPD Visit30%1093562921
Existing Patient Search using Name → Start OPD Visit20%1243374125
Upload Patient Document10%36238579
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%1422521289

📙 동시 사용자 70명 - 높은 트래픽 조건

Report Link: https://bahmni.github.io/performance-test/baseline_report-20220912071131867_70users_30분_2gb/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20220912071131867_70users_30mins_2gb/index.html

🔰 관찰 결과:

  • OpenMRS Cluster 메모리 및 CPU consumption was similar to 90 concurrent user run (Peak traffic)The API failure rates were very similar to peak traffic

보고서 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)Max Time (ms)Notes
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%25119852939
Existing Patient Search using ID → Start OPD Visit30%175120054692
Existing Patient Search using Name → Start OPD Visit20%16297954510
Upload Patient Document10%624097848
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%19355844887Get Patient Lab Orders: 95% KOSave Consultation: 52% KOGet Visits: 18% KO

📙 동시 사용자 90명 - 최대 트래픽 조건

Report Link: https://bahmni.github.io/performance-test/baseline_report-20220912061644613_90users_30분_8gb/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20220912061644613_90users_30mins_8gb/index.html

🔰 관찰 결과:

  • OpenMRS Pod 사용량: 11.5GB 메모리 및 3.22 CPUOverall Cluster was at 12.5GB RAM and 3.6 CPUMore than 50% of the consultation and 95% all of Patient lab order fetch api calls suffered timeout.

보고서 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)Max Time (ms)Notes
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%25418855802
Existing Patient Search using ID → Start OPD Visit30%192103156250
Existing Patient Search using Name → Start OPD Visit20%17765153063
Upload Patient Document10%6254559070
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%20062653271Get Patient Lab Orders : 95% KOSave Consultation: with 56% KOGet Visits: 15% KO

⭕️ 속도 기반 프레임워크

이 프레임워크는 시간당 반복 횟수 방식의 볼륨을 기반으로 하며 각 persona 시뮬레이션에 전용 속도를 설정합니다.

기본 JVM 구성

📙 동시 사용자 40명 - 표준 트래픽 조건

Report Link: https://bahmni.github.io/performance-test/baseline_report-20220923121606971_40users_30분_defaultJVM/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20220923121606971_40users_30mins_defaultJVM/index.html

🔰 관찰 결과:

  • OpenMRS Pod 사용량: GB 메모리 및 CPUOverall Cluster was at GB RAM and CPU

보고서 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)95th Percentile (ms)99th Percentile (ms)Max Time (ms)
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%10888191328378
Existing Patient Search using ID → Start OPD Visit30%96243481557571
Existing Patient Search using Name → Start OPD Visit20%87243579694749
Upload Patient Document10%27164209280304
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%1203325316101153

📙 동시 사용자 70명 - 높은 트래픽 조건

Report Link: https://bahmni.github.io/performance-test/baseline_report-20220923133122220_70users_30분_defaultJVM/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20220923133122220_70users_30mins_defaultJVM/index.html

🔰 관찰 결과:

  • OpenMRS Pod 사용량: GB 메모리 및 CPUOverall Cluster was at GB RAM and CPU

보고서 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)95th Percentile (ms)99th Percentile (ms)Max Time (ms)
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%2028596810581120
Existing Patient Search using ID → Start OPD Visit30%163232125417001860
Existing Patient Search using Name → Start OPD Visit20%143241122116301866
Upload Patient Document10%4014498412811338
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%210329173625382654

📙 동시 사용자 90명 - 최대 트래픽 조건

Report Link: https://bahmni.github.io/performance-test/baseline_report-20220923141108441_90users_30분_defaultJVM/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20220923141108441_90users_30mins_defaultJVM/index.html

🔰 관찰 결과:

  • OpenMRS Pod 사용량: GB 메모리 및 CPUOverall Cluster was at GB RAM and CPU

보고서 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)95th Percentile (ms)99th Percentile (ms)Max Time (ms)
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%2748199510641843
Existing Patient Search using ID → Start OPD Visit30%192250182021932410
Existing Patient Search using Name → Start OPD Visit20%188239210922232465
Upload Patient Document10%5716797213661416
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%270339265637524149

튜닝된 JVM 구성

기본 구성보다 효율을 높이도록 JVM을 튜닝했습니다.

구성

📙 동시 사용자 40명 - 표준 트래픽 조건

Report Link: https://bahmni.github.io/performance-test/baseline_report-20220927073846406_40users_30분_tunedJVM/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20220927073846406_40users_30mins_tunedJVM/index.html

🔰 관찰 결과:

  • OpenMRS Pod 사용량: 2.75 GB 메모리 및 0.411 CP

보고서 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)95th Percentile (ms)99th Percentile (ms)Max Time (ms)
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%119154294361544
Existing Patient Search using ID → Start OPD Visit30%75242408453463
Existing Patient Search using Name → Start OPD Visit20%96270612765766
Upload Patient Document10%35138348474504
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%120490687769778

📙 동시 사용자 70명 - 높은 트래픽 조건

Report Link: https://bahmni.github.io/performance-test/baseline_report-20220927100508288_70users_30분_tunedJVM/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20220927100508288_70users_30mins_tunedJVM/index.html

🔰 관찰 결과:

  • OpenMRS Pod 사용량: 2.77 GB 메모리 및 1.22 CPU

보고서 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)95th Percentile (ms)99th Percentile (ms)Max Time (ms)
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%206164366537677
Existing Patient Search using ID → Start OPD Visit30%146249661806894
Existing Patient Search using Name → Start OPD Visit20%157238654743767
Upload Patient Document10%60132600710710
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%21049797810751236

📙 동시 사용자 90명 - 최대 트래픽 조건

Report Link: https://bahmni.github.io/performance-test/baseline_report-20220927092902911_90users_30분_tunedJVM/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20220927092902911_90users_30mins_tunedJVM/index.html

🔰 관찰 결과:

  • OpenMRS Pod 사용량: 2.76 GB 메모리 및 1.42 CPU

보고서 관찰 결과:

SimulationsScenarioLoad sharePatient CountMin Time (ms)95th Percentile (ms)99th Percentile (ms)Max Time (ms)
Frontdesk50% TrafficNew Patient Registration → Start OPD Visit40%260153362423526
Existing Patient Search using ID → Start OPD Visit30%1992687869601163
Existing Patient Search using Name → Start OPD Visit20%1972768449521120
Upload Patient Document10%62152537741860
Doctor50% TrafficDoctor Consultation8 Observations2 Lab Orders3 Medication100%270511103713211551

⭕️ 시나리오 based pace frameworkThe scenario based pace framework enables various pace distribution among different scenarios individually.

구성

📙 동시 사용자 40명 - 표준 트래픽 조건

Report Link: https://bahmni.github.io/performance-test/baseline_report-20221012061917030_standard_30분_tunedJVM_v2/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20221012061917030_standard_30mins_tunedJVM_v2/index.html

📙 동시 사용자 70명 - 높은 트래픽 조건

Report Link: https://bahmni.github.io/performance-test/baseline_report-20221012065541720_high_30분_tunedJVM_v2/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20221012065541720_high_30mins_tunedJVM_v2/index.html

📙 동시 사용자 90명 - 최대 트래픽 조건

Report Link: https://bahmni.github.io/performance-test/baseline_report-20221012095812872_peak_30분_tunedJVM_v2/index.html관련 문서: https://bahmni.github.io/performance-test/baseline_report-20221012095812872_peak_30mins_tunedJVM_v2/index.html

원문 정보

Bahmni Wiki · CC BY-SA 4.0

원문 보기 ↗