A long time ago said to sum up his career, has been busy with some of the mess, now rare to steal idle, take advantage of the feeling, hurriedly knocked down "These years, my software performance Test " To honor my this IT industry for a few years ...
Remember the first time to do the performance test project, the mood is disturbed, feel, performance test, do not good backpack off may, but at that time took me to do the project boss gave me a lot of confidence and support, I do in the process, encountered the doubt, he will be patient to me to answer or give me a direction, Let me go forward, solve, with a problem of the emergence and resolution of their own every day also feel very substantial. Also in this project, the boss told me, as a performance test, if only to use tools, this can only be considered as a primary performance test engineer, important or design ability, thought for the king, so, I heard from his mouth a word: performance modeling and capacity planning ... At that time, I really do not know what this is, some is the boss of the worship and the future of the road to think about how to go ...
The first performance project, completed on schedule, the Google's GA inserted JS code to test, verify that JS injected website after the impact on performance (due to its own JS need to do download and data escalation, the middle process needs to see how the situation), testing process, Found that there will be most of the user response time is relatively long, at that time is according to the 2-5-10 law to do the response time is reasonable (think, this is the legend of the beat of the head, hehe), think how to analyze where the reason? The first time to do performance testing, to see the results, joy at the same time more is a kind of disturbed, do not know how to start the report before? Fortunately, have the boss to give guidance, analyze the bandwidth, exclude the impact of bandwidth, viewServerIts own resources, also no problem, while subdividing the verification, found that most of the time is consumed in the server layer, so based on this basis, directly looked at the next Apache (then we used the server) queue waiting (the method used is very simple, direct ps-ef|grep httpd|wc-l) , found that with the gradual increase of virtual users, will cause the number of queues is more and more, the initial suspicion is configuration problems, consulting operations, Apache configuration is not moving, with the default configuration, so we put forward, we need to review and try to adjust the configuration file. In the process of viewing, refer to the resources of friends on the Internet, found that maxclient is indeed the default, after modification, to restart, return, found that the problem is still there,, is it other places slow? How do you do that? This time OPS tells us that Apache only modifies this is not enough, but also need to modify a hidden variable, serverlimit, only modified it, maxclient modified more than 1000 of the time will be effective. So also elephant, try, find, really is here, modified after, the queue of users reduced, more than 5S of response time, the percentage of users also decreased, so began to prepare performance test report (Report wrote me 10 times to send out, the bitter AH ~ ~ ~), by the way to give operation and maintenance advice, Because of this service corresponding to the Apache is a single point, it is recommended to remove a single point, then apply for a machine as a hot spare, peak time can also be used as balance function. So, my first performance test, with this first performance test report issued, ended up .... And from then on, I started on the road to performance testing and began to fall in love with performance testing
In the back of the work , large and small projects are also exposed to some, fragmented some performance problems with research and development, DBA positioning, tuning to solve, but slowly I am thinking, performance testing is this? In a subsequent project, let me know that performance testing is not the case, far from what I have seen before, not enough to see in depth ...
Remember that project was a test of a search service server developed by C + +, and in the process of testing, it was discovered that, in the course of the test, the disk became faster, the memory consumed quickly, and the CPU soared very fast. ...... Can be concurrent users only 5 Ah,,,, where is the problem? CPU soared particularly fast, that is generally complex operation, scheduling frequent, frequent switching and other causes, so, find research and development, consulting related algorithms, whether too complex, can be re-optimized? Research and development communication, to patiently explain the algorithm, and reply, the current can not be optimized, can only be seen in the back step. Is that how it's going to be released? Anyway, the company is not bad server, heap server is the hardware to solve the performance problem seems to have become the unspoken rules of the industry, and the product also said, usually no number of people will use this, such problems, they can also accept ... That's how you send it to the Internet? No, as a performance test engineer, if we wash and sleep like this, then where is our value? So, with the research and development advice, if it is really the problem of the algorithm, in the current we can not be modified, tuning on the basis, whether further request of senior and expert research and development to give check and give advice to the risk analysis? So, research and development began to further confirm which piece of the algorithm, which consumes the most, the drama is, analysis to the end, found that the problem is not the main killer, before the wrong algorithm, but the program itself a bug, the development of C + + used in the Hashtable, the wrong thought is ordered , but the actual hashtable in the processing time is unordered, resulting in each time will generate a new append file, so that the file is getting bigger and larger, causing the disk crazy long, while writing disk this process on the CPU occupies a very high, and then a, read the data, before it is directly painful to take from the disk, No map processing, map processing after the program is read from memory, so that the response time has been effectively improved, and research and development also to the place should not be locked in sequential read lock processing to repair, resulting in server throughput rate is improved ... Finally, the release back to the research and development, the development of self-test, then the test and validation
In the last project, let me think, as a performance test engineer, do not mistakenly define yourself as an architect (many people in the industry feel that performance test engineers are very good, in the process, not naturally the role of the equivalent of an architect, in fact, I would like to say that the architect is higher than the performance test engineer), but, A good performance test engineer should be constantly close to the architect, only in this way, can really fundamentally discover, solve problems, in the research and development system to better reflect their own value. Also after this project, I began to think and have a virtual project behind me, "the BMW Software Performance platform" (supposedly the name domineering point is good:)) ...
Another: These years of project experience, but also let me realize that, for some performance problems, in tuning, not necessarily need to use technology to solve, some problems, technology can not be solved, need to think and try to adjust the business needs, some performance problems of positioning and analysis, not to say must be so laborious, high concurrency , check here, look there to locate and solve, and some only with a single user, send a request, grab a bag, look at the Timechart, look at the code composition, you can solve. Performance testing, I have always insisted that it is inseparable from monitoring, with monitoring, with data preparation and data collection, we can quickly and better detect problems , analyze and solve the problem (this is why I have "BMW Software performance Platform")
These years, my software performance test project experience, let me get a lot, also lost a lot, for the industry's understanding also see more in-depth, began to contact and learn the language kernel knowledge, TCP/IP principles and other network knowledge, deep feeling to the I am ......
Over the years, my software performance test was written on the 28-year-old I was about to die ...
"Go" These years, my software performance test