The performance of domestic basic software is a key factor affecting software applications. Only when the application system of domestic basic software meets the user's needs in terms of performance can it be accepted by users. The integration of application systems and domestic basic software is theoretically feasible. However, whether the performance of application systems based on domestic basic software can meet the needs under high concurrency and high access data volume has not been verified. Therefore, it is necessary to perform performance testing on the combination of domestic basic software and the complete system including actual applications.
This paper takes a medical information system based on domestic basic software as an example to introduce how to test the performance of the system under high concurrency and high access data volume, analyzes the main factors affecting the system performance, and proposes a system performance optimization plan. The experimental results show that the solution greatly improves the system performance and provides a reference method for the performance optimization of application systems based on domestic basic software.
1 Performance Testing
1.1 Performance Testing Method
Performance testing is to put pressure on the system under test by simulating the behavior of a large number of users interacting with the system, and obtain the real experience of users when the system load increases or at a specific load, so as to determine the maximum load that the system can withstand and the performance under a specific load.
There are many methods for system performance testing. According to the purpose of the test, they can be divided into load testing, stress testing, configuration testing, concurrency testing, reliability testing, etc. [1]. Among them, load testing is to obtain the performance of the system under different loads by continuously increasing the load pressure on the system under test. Stress testing mainly tests the maximum service level that the application system can provide when the system resources are saturated. This paper selects load testing and stress testing to conduct multiple rounds of testing on the system.
1.2 Performance indicators
Performance indicators are the most direct data to describe system performance and provide a standard for performance measurement. This article monitors performance indicators such as the number of concurrent users, response time, throughput, and resource utilization in the test. The performance indicators are described as follows:
(1) Concurrent users: The number of users who conduct sessions at the same time within a specific period of time.
(2) Response time: the time delay from when a request is sent to when the client receives a response from the server.
(3) Throughput: the number of client requests processed by the system per unit time.
(4) Resource utilization: the usage of various system resources, such as the server's CPU, memory, and network bandwidth.
2 Performance Test Implementation
2.1 System Analysis
The medical information system is built on the platform system of the government information field of domestic basic software, adopts the J2EE architecture, and is developed using technologies such as JSP, Strut, and Hibernate. It is a low-cost public service system prototype and solution with domestic basic software as the core. The architecture of the medical information system is shown in Figure 1.
Medical information systems are mainly aimed at major hospitals. The hospital demand survey and system analysis are shown in Table 1 [2].
Performance testing needs to simulate the operation behaviors of a large number of users, and requires the support of testing tools to achieve user behavior simulation, load generation, data collection and analysis, etc. This article introduces the testing tool LoadRunner to perform performance testing on the system to test whether the performance of the medical information system based on domestic basic software can meet the requirements shown in Table 1. [page]
2.2 Test Environment
During the test, a PC was used as the load test machine and a server was used as the application server and database server. The PC was connected to the server via a 100 Mb/s LAN. The server software composition is shown in Table 2 [3].
2.3 Recording test scripts
A test script is a set of codes that, when executed, can simulate the request data generated by user operations on the server, or simulate the process of user operations, user waiting behavior, etc. The script recording is performed according to the following steps:
(1) Using LoadRunner to record the test, we selected new patient data, patient data query, and new schedule function as three groups of tests based on the frequency of business use and the size of the load [4]. These three groups of test scripts simulate the execution process of system login, business operation, and system exit.
(2) Each operation is defined as a transaction, and random thinking time is added before and after the transaction.
(3) Set a collection point before the transaction to ensure the concurrency of user operations.
(4) In the actual operation process of users, the data submitted by different users and the session flags dynamically generated by the system are inconsistent. The range of difference values and the iteration method are set by parameterization to realize the variableization of data, and the system's session flags such as session need to be set up for association to be saved.
2.4 Designing test scenarios
In performance testing, a common misconception is to only set up a single scenario. The design of the scenario is crucial. Only when the designed test scenario truly reflects the user's actual scenario can the performance test results be reliable.
The design of scenarios needs to take into account the differences in load on the system caused by different operations when the system is running, and it is necessary to determine the proportion of users of different operations in typical application scenarios [5]. In a medical information system, the proportions of creating new patient data, querying patient data, and creating new schedules are 25%, 60%, and 15% respectively.
Load the three recorded test scripts in the created scenario and set the execution ratio. Edit the schedule generator in the scenario, set the virtual users to increase in proportion at a certain interval, and gradually start to establish connections with the server.
2.5 Analyze test results
During the performance test, LoadRunner collects a large amount of test data, including each performance indicator, such as transaction errors, warnings, and notification information. The transaction response time with 200 concurrent users is shown in Table 3.
Problems encountered during the test: (1) When a large number of users are running concurrently, the resource utilization of the server CPU and memory is very low; (2) The transaction execution success rate is low, the average response time of successful transactions is long, and many transactions fail due to connection timeouts; (3) Memory leaks occur; (4) The Tongweb console shows that network communication anomalies occur when connecting to the database.
From the test results, it can be seen that the system has performance bottlenecks. Therefore, in order to achieve the best performance of the system, it is necessary to analyze the impact of the test environment on system performance, optimize its performance, and eliminate the system performance bottleneck. [page]
3 System Optimization
3.1 System Optimization Framework
According to a report by Mercury, system performance issues are caused by many factors. System structure, code optimization, network environment, database server, and application server will all affect system performance. However, the main factors affecting system optimization are network environment, application program, application server, and database server [6]. Considering the interdependence between these factors, an optimization method from high level to low level is adopted. The characteristic of this method is to optimize the high-level environment first, and then optimize the lower-level environment, which conforms to the general rule that high-level implementation depends on low-level implementation. The optimization level is shown in Figure 2, but if it is adjusted arbitrarily, it is easy to cause a cycle.
(1) Network environment optimization
The network is one of the important factors that affect system performance, and its impact is mainly reflected in the response time and throughput of transactions. During the test, if the throughput does not increase with the increase of concurrent users, and the transaction response time is relatively long, you can consider optimizing the network and improving the network bandwidth.
(2) Application Optimization
Application optimization is aimed at the data access layer, and its optimization measures mainly include the following aspects: (1) Optimize SQL statements; (2) Introduce connection pool mechanism as much as possible to reduce the frequent opening and closing of database connections, control the total number of currently activated database connections, and prevent system overload; (3) Introduce cache mechanism to reduce the number of disk I/O. These optimization measures can increase data reading rate, reduce access response time, and reduce resource utilization.
(3) Application Server Optimization
Application server optimization focuses on the maximum connection limit and memory configuration. In the case of a large number of concurrent connections, the application server is under great load pressure. Too many connections will quickly consume a large amount of system resources. Too low a connection limit will increase the connection delay and extend the transaction response time. When optimizing, the maximum connection limit and memory of the application server should be reasonably set according to the system resources to avoid memory leaks and minimize the response time.
(4) Database system optimization
Database system optimization mainly involves configuring the data cache size, the maximum number of concurrent sessions, and establishing reasonable indexes for the database. Setting a larger data cache can reduce the number of data exchanges and reduce system resource consumption. Establishing reasonable indexes for database tables with large data volumes and frequent access can eliminate sequential storage of tables, thereby improving the system's retrieval performance. If the server has a long transaction waiting queue when CPU resources and I/O resources are available, increasing the maximum number of concurrent sessions can reduce response time.
3.2 Optimization scheme of medical information system
The performance test in this paper is conducted in a local area network, so the impact of network bandwidth on system performance can be excluded. By analyzing the performance test results and combining the system optimization framework, the optimization measures for the medical information system are as follows:
(1) The database access layer of the application system uses the database persistence technology Hibernate. Edit the application configuration file hibernate.cfg.xml, introduce the third-party connection pool c3p0, and set the maximum number of connections in the connection pool to 100; use the second-level cache in Hibernate, and set the loading feature of Hibernate to lazy loading.
(2) In the application server, adjust the maximum value of Tongweb's JVM stack and memory, and the maximum number of connections. Edit the TongWeb4.0/bin/tongserver.sh file, and change JAVA_ARGS="-Djmx.invoke.getters=true" to JAVA_ARGS="-Xms256m-XmX750m", and adjust the maximum value of JVM stack and memory to 750M. After increasing Tongweb's JVM virtual stack and memory values, memory leaks no longer occur; edit tongweb4.0/conf/tongweb.xml and adjust socket-back-log from 50 to 200, and adjust Tongweb to reduce the number of connections that need to wait and reduce response time. [page]
(3) In terms of the database system, after checking the data tables, it was found that the database tables had no indexes, so indexes were added to the frequently accessed tables. The parameter adjustments of the DM database are shown in Table 4.
The database is modified in this way mainly when there is a large amount of concurrency. Due to the large amount of data, the data buffer is generally set to about 80% of the physical memory (the unit value of BUFFER is 8 KB); the maximum number of database sessions needs to be greater than the connection pool set by the application; the CPU still has available resources, the number of working threads can be increased, and the response time can be reduced. After optimization, the transaction response time with 200 concurrent users is shown in Table 5.
By comparing the results in Table 3 and Table 5, it can be seen that after system optimization, the system performance has been greatly improved. The system performance also meets the overall performance requirements of the medical information system, ensuring that the medical information system based on domestic basic software can meet the needs of medical work and daily office work.
This paper introduces the performance testing method and process of the medical information system based on domestic basic software, analyzes the main factors affecting the system performance, and proposes a system performance optimization plan. The test results show that the optimization plan proposed in this paper can significantly improve the performance of the medical information system based on domestic basic software, can meet the needs of the application, and can be applied to the construction of medical informatization in my country.
References
[1] Duan Nian. Detailed explanation of software performance testing process and case analysis[M]. Beijing: Tsinghua University Press, 2006.
[2] Hao Jianying, Yan Haihua, Liu Chao, et al. An effective Web performance testing method and its application [J]. Computer Application Research, 2007, (1): 275-277.
[3] Zhang Zhonglei, Sun Yujuan, Li Xiufang. Research on the framework of domestic software and hardware in realizing the integrated application of e-government[J]. Microcomputer Information, 2006, 22(12-3): 198-199.
[4] DRAHEIM D, GRUNDY J, HOSKING J. Realistic load testing of Web applications[C]. Proceedings of the Conference on Software Maintenance and Reengineering,2006.
[5] Jian Ling. Design and implementation of B/S system performance test[J]. Computer Engineering, 2009, 35(10): 51-53.
[6] Xiong Zhongyang, Li Guangyong, Zhang Yufang, et al. Performance testing and optimization of Web cluster system[J]. Journal of Computer Application Research, 2008, 25(3): 826-832.
Previous article:Measuring the power output of solar cells using standard test equipment
Next article:Using thermal imaging cameras to check for air leaks in HVAC systems
- Popular Resources
- Popular amplifiers
- Evaluating Roadside Perception for Autonomous Vehicles: Insights from Field Testing
- Advanced HDL Synthesis and SOC Prototyping:RTL Design Using Verilog
- High Performance Memory Testing:Design Principles, Fault Modeling and Self-Test
- Research on a New Diesel Generator Excitation Control System Based on DSP
- Keysight Technologies Helps Samsung Electronics Successfully Validate FiRa® 2.0 Safe Distance Measurement Test Case
- From probes to power supplies, Tektronix is leading the way in comprehensive innovation in power electronics testing
- Seizing the Opportunities in the Chinese Application Market: NI's Challenges and Answers
- Tektronix Launches Breakthrough Power Measurement Tools to Accelerate Innovation as Global Electrification Accelerates
- Not all oscilloscopes are created equal: Why ADCs and low noise floor matter
- Enable TekHSI high-speed interface function to accelerate the remote transmission of waveform data
- How to measure the quality of soft start thyristor
- How to use a multimeter to judge whether a soft starter is good or bad
- What are the advantages and disadvantages of non-contact temperature sensors?
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- Rambus Launches Industry's First HBM 4 Controller IP: What Are the Technical Details Behind It?
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- 【Gravity:AS7341 Evaluation】+ Frequency Value Detection
- The homemade sensor test board (bone vibration) is finished and ready for production
- RK3288 baseboard + core board design process
- CCS import routine
- Help designing power adapter
- Seek advice from experts in lidar software and hardware
- "Playing with the Board" + Replaying MicroPython on the STM32F7DISC (6)
- Characteristics and application fields of electronic tags in various frequency bands in RFID technology
- The Hummingbird E203RISCV processor uses custom assembly instructions and NICE bus to read and write control ideas for the coprocessor memory
- [Long-term recruitment] Beijing Haidian - Annual salary starting from 600,000 - Embedded software and hardware engineer