Recently, I have been busy with product performance issues, including supporting large data volumes and increasing concurrency. To this end, I have also set up a performance research team. The performance tuning of the software is really tricky, it requires too much accumulation, and the larger the software is, the higher the level of challenges. Currently, we are working on products.CodeThe number of rows already exceeded 500 kb, with a total of about 50 people working in front and back, and a R & D team of 30 people at the peak stage, including many new graduates, in addition, the product architecture supports two important attributes: multi-language and multi-database, making performance adjustment difficult.
At present, the average concurrency tested by the QA Team is 50 and the core basic data is 10 KB, which is far from the normal application of the high-end customer group. Currently, the most obvious performance is 2 points: a. the CPU usage of the Web server is too high; B. The deadlock PROCESS OF THE DB server continues to grow. For the second point, our customer IT Director gave a very vivid example: The system is like the continuous operation of the bus around the city, and the maximum carrying capacity is 50. If every platform is free to get on and off, so we can support several times of people, but our system is like some people have never been out of the bus, and this part of the staff continues to increase, and finally the bus will not move... Of course, my short-term reply to him is also very simple: Find a person in the car, if there is a person who has not got off the bus for more than an hour, forcibly destroy it.
The idea of modifying the product is actually not complicated (mainly because of heavy workload), which may be divided into several aspects:
1. Reduce unnecessary transactions and lock table time of transactions
2. SQL optimization and INDEX OPTIMIZATION
4. code optimization and unified use of standards
3. Business Optimization
We hope that this time we can adjust the performance problem to an acceptable level as soon as possible, and it will take a long time to get over and over again ~~~~~~