Bottleneck Analysis of performance testing

Source: Internet
Author: User
Tags system log cpu usage high cpu usage jconsole

(7) Performance Test bottleneck analysis

 

Performance Bottleneck Analysis composition diagram:


---------------------------------Split Line---------------------------------

Two performance Bottleneck Analysis blog post (attached)

In the performance test, the word "performance bottleneck" is always used, and it is regarded as a basic vocabulary, and never thought of what it was. Today, suddenly someone asked what is a "performance bottleneck", although barely able to cite some examples to illustrate it, but it is not too satisfactory, so summarize.

The first thing to say is the meaning of "bottleneck". Bottleneck, in layman's words, is the neck of a bottle, which is the weakest link in the whole system. Like a bucket, how much water can be installed depends on the shortest piece of wood, the other planks are no longer useless, then we can think that this short plank is the bottleneck of this bucket.

So performance bottlenecks, which are the key factors that limit system performance.

Generally includes:

(1) Performance bottleneck on hardware

Mainly refers to the CPU, RAM aspects of the problem. For example, in the software requirements analysis, summary design, determined that the database server requires 6 CPU, 12G of memory but in the test, found that the CPU's continuous utilization rate of more than 95%, this can be considered as a hardware performance bottleneck.

(2) Performance bottleneck on application software

Generally refers to application servers, Web servers and other applications, including database systems. For example, the parameters for the JDBC Connection pool are configured on the WebLogic platform, with a maximum number of connections of 50, a minimum number of connections of 5, and an increase of 10. During the test, it was found that when the load increased, the number of existing connections was insufficient and the system dynamically generated 10 new connections, which resulted in a significant increase in response time for transaction processing.

At this point, it can be considered that there are performance bottlenecks in the application software.

(3) Performance bottleneck on the application

This is generally referred to as the developer's newly developed application. For example, an application developed in Java or C that is deployed on an application server for user transaction request processing. For example, a developer has developed a payment processing program that, when tested, found that the payment handler can only be processed serially and not processed in parallel when processing the concurrent payment request from the user, resulting in a very long processing response time for the payment transaction, which could be considered a performance bottleneck on the application.

(4) Performance bottleneck on the operating system

This is generally referred to as Windows, Unix, and Linux operating systems. For example, in a Windows system, the virtual memory settings are not reasonable, are specified as C drive to provide virtual memory, when the test found that when the physical memory is low, virtual memory exchange effect is very unsatisfactory, resulting in a significant increase in the response time of the transaction. This can be considered a performance bottleneck on the operating system.

(5) Performance bottleneck on network devices

Generally refers to firewalls, dynamic load balancers, switches and other devices. For example, when a dynamic load balancer is set up to dynamically distribute load, the dynamic load balancer sends subsequent transaction requests to other lightly loaded application servers when it discovers that the hardware resources on an application server have reached its limit. In the test, it is found that the dynamic load balancing mechanism does not play a corresponding role, which can be considered as a performance bottleneck on the network equipment.

Source of this article

Http://blog.sina.com.cn/s/blog_4ab06e970100937i.html



Second article:

(2)

1, network bottlenecks, such as bandwidth, traffic and other forms of network environment

2. Application service bottleneck, such as basic configuration of middleware, cache, etc.

3, System bottleneck, this is more commonly used: Application server, database server and client CPU, memory, hard disk and other configuration

4, the database bottleneck, in Oracle, for example, the default parameter set in SYS

5, the application itself bottleneck, this is the test process most need to pay attention to, need testers and developers to cooperate with the execution, and then locate

Gradually refine the analysis, the first can monitor some common measurement of CPU, memory, disk performance indicators, to conduct a comprehensive analysis, and then according to the specific situation of the system under test, the initial problem location, and then determine more detailed monitoring indicators to analyze.

Performance issues that you have encountered:

1. In the case of high concurrency, the resulting processing failure (for example: Database connection pool is too low, the number of server connections exceeds the limit, database lock control is not considered enough)

2. Memory leaks (for example: In the long run, the memory is not properly released, the outage occurs, etc.)

3. CPU Usage deviation (for example: high concurrency leads to high CPU usage)

4. Log print too much, the server has no hard disk space

How to locate these performance issues:

1. Check the system log, log is the Magic weapon to locate the problem, if the full log records, it is easy to find the problem through the log. For example, when the system goes down, the system log prints out an out-of-memory error when a method executes, and we can follow the lead and quickly locate the problem that caused the memory overflow.

2. Using performance monitoring tools, such as: Java Development B/s structure of the project, can be through the JDK jconsole, or jprofiler, to monitor server performance, Jconsole can remotely monitor the server's CPU, memory, thread and other state, and draw a change graph.

Use of Spotlight to monitor database usage.

The performance points we need to focus on are: CPU load, memory utilization, network I/O, etc.

3. Tools and logs are just means, and in addition, a reasonable performance test scenario needs to be designed

Specific scenarios are: Performance testing, load testing, stress testing, stability testing, surge testing, etc.

Good test scenarios to find bottlenecks more quickly and locate bottlenecks

4. Understand the system parameter configuration, can perform later performance tuning

The final point is: When doing performance testing, we must make sure that bottlenecks do not occur on our own test scripts and test tools.


The source of this article connection: http://blog.csdn.net/zhuff0418/article/details/6906862


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.