logo
logo
AI Products 
Leaderboard Community🔥 Earn points

To get good software performance testing tools to use

avatar
Wan Lee
collect
0
collect
0
collect
0
To get good software performance testing tools to use

This is a book about performance analysis, diagnosis and tuning practices that combines theory and practice and is oriented to R&D and testing posts. Compared with many other performance testing books, the content of this book focuses more on how to find performance problems , Analyzing and diagnosing performance problems and tuning the found performance problems. The content in the book covers the basics of software performance testing, performance analysis of linux and windows servers, performance analysis of web and application middleware, performance analysis of java applications, performance analysis of databases, performance analysis of Android APP and specific performance analysis cases practice. This book is mainly for friends who have a certain performance testing foundation or programming language foundation. It may be a little difficult for friends who are new to performance testing. It is recommended to read this book together with other basic books for better results. Well, the author believes that friends who have finished reading this book will definitely not worry about "performance problems" in the future

1. Understand the various performance indicators of the system, and use software performance testing to understand how much concurrent access the system can withstand, what is the average response time of the system, and what is the tps of the system.

2. Find the performance problems existing in the system. The common performance problems are as follows:

Whether there is uneven load balancing in the system. Uneven load balancing generally refers to the fact that in the case of concurrency, the uneven pressure received by each server may cause some servers to experience a sharp decline in performance due to excessive pressure, while Some servers are wasting resources because they are too small.

Whether there is a memory leak problem in the system. Memory leak means that the application code will not actively release memory resources after each execution, resulting in continuous increase in memory usage. Eventually, all physical memory of the server will be exhausted, and the program will gradually slow down. In the end, it quit running because it could not apply for memory, and most of the time it increased very slowly, and it was not easy to be discovered. Generally, it needs to pass a high-concurrency performance pressure software performance testing to be exposed.

Whether there is a problem with the connection system in the system, connection leaks include a very wide range, which can be database connection leaks, http connection leaks or other tcp/utp connection leaks. In addition to the actual situation of the system that requires the establishment of long connections, generally short connections should be closed and released when they are used up.

Whether there is a thread safety problem in the system. Thread safety problem is a problem that often occurs in a multi-threaded processing system with high concurrent access. If there is a thread safety problem in the system, multiple threads will change data successively and cause the obtained The data is all dirty data, sometimes even causing huge economic losses.

Whether there is a deadlock problem in the system, deadlock problem is also a classic problem often encountered in multi-threaded systems, generally common system deadlock, database deadlock and so on.

Whether there is a network architecture or application architecture scalability problem in the system. The scalability problem generally means that when the performance indicators cannot meet expectations, after the hardware resources are expanded horizontally or vertically, the system performance indicators cannot be rapidly increased according to a certain linear law. .

Find out where the performance bottleneck of the system is. The performance bottleneck generally refers to the inability to continuously increase the performance of the system due to certain factors.

3. Solve the problems and performance bottlenecks in the software performance testing, and make the system meet the expected performance indicators through continuous performance tuning.

An excellent software performance testing engineer needs to have at least:

1) Proficiency in using commonly used performance testing tools, including LoadRunner, Jmeter, nGrinder, etc., and proficiency in these tools to write performance stress test scripts and set performance stress test scenarios.

2) Proficient in the basics and concepts of performance testing, able to write a relatively perfect performance testing plan, and able to reasonably set up software performance testing scenarios.

3) Familiar with the performance monitoring of Linux, Windows and other common servers and analyze and diagnose performance bottlenecks, such as what to do if the CPU fluctuates greatly? How to locate frequent CPU context switching? How to see what a thread is currently executing?

4) Familiar with common web middleware, application middleware and how to perform performance monitoring analysis and parameter tuning on middleware.

5) Familiar with the monitoring and log analysis of Java applications. At present, most of the performance tests are still based on Java applications, and many projects including big data are also based on Java, such as Hadoop, Spark, Flink, etc.

6) To master database performance monitoring and bottleneck location analysis, the most common is to master Mysql monitoring, such as slow log analysis, execution plan, how to see whether the query is indexed from the monitoring?

7) Can write a complete performance stress test report. In addition to stress test scenarios and performance indicators, the report also needs to analyze performance inflection points, performance trends, and where are the current performance bottlenecks? What feasible tuning methods can be given and so on.

collect
0
collect
0
collect
0
avatar
Wan Lee