Technologies related to improving web server performance-thesis 1: Application of Banking Industry

Source: Internet
Author: User
【Abstract]
Database applications based on WEB technology are a hot topic of current applications. Improving the Performance of web servers is an urgent issue when the number of users and communication load are high. Starting from the author's experience in the development of a banking system project, this article describes how to improve the performance of web servers to all aspects of project demonstration, selection, development, operation and management, only when the performance and quality needs are fully taken into account in all stages, the system performance is truly guaranteed and scalable.
Based on the actual operation and experience of the system, this article describes some specific measures for improving the performance.
For example, this article discusses the selection of the Web server platform, web server configuration management, application system optimization, pre-design, and Performance Assurance for scalability.
Through technical analysis and improvement and comprehensive use of various measures and means, the performance of web servers in the actual system has been guaranteed to a certain extent.
[Body]
My company is an information technology company that targets IT applications in the financial field. With the development of electronic financial construction and the intensification of market competition among commercial banks, major commercial banks continuously provide new financial products through information technology and hope to integrate market channels. For example, major commercial banks are constantly launching various online banking services. In this context, I participated in the development of a new generation of online banking products, involving the provision of online personal financial services, online foreign exchange trading services, online enterprise services and other products with market competitiveness. As one of the project development organizers and the main technical backbone, the entire project development process has always been on the first line, so as to improve the web server performance and improve the system performance of the entire online platform, this article briefly discusses the following and hopes to share experiences with readers. In terms of Web server configuration and optimization, I have the following main experiences:
The first aspect is the selection of web servers.
At the beginning of Web server selection and online platform establishment, we have fully considered the performance and scalability of the entire online platform. This consideration laid a solid foundation for the stability and scalability of the system.
Some of the original online products of a bank were developed earlier, so they were called by the old-fashioned HTTP Server + CGI program. At this time, each customer request needs to correspond to the system process of the backend system to run the CGI program for processing. The system overhead is considerable, and the system expansion capability is also poor, the performance cannot meet the needs of business processing. Therefore, when selecting a specific banking system, we initially rejected this solution.
Through the comparison of similar products on the market, we chose the IBM Web sphere product series of international commercial machine Co., Ltd. as the platform for establishing the online banking system of the bank. This is because Web sphere is based on the overall architecture that separates HTTP server from application server and supports lightweight thread specifications such as JSP, Servlet, and enterprise group Java Bean, all requests correspond to the processing threads on the Application Server. The system has low overhead and high efficiency. At the same time, the entire web sphere architecture is quite flexible, different horizontal and vertical extensions can be made to meet the expansion needs of different banks in the future.
It is precisely because at the beginning of the selection, we have taken into account the future expansion needs. In terms of the performance improvement of the entire system, we have achieved the expected goal relatively smoothly.
The second aspect is the Web server performance configuration.
At the beginning of the system launch, because the system load was not very high, to save the total cost of ownership of the system TCO investment, we put into production the system on a low-configuration IBM rs6000. The HTTP server, application server, and communication server of the entire system are located on this machine. because there are not many users in initial production, the system performance is basically acceptable.
However, with the development of business and the increase of user traffic, we found that the server's response slows down, and the system's CPU utilization and internal and external memory exchanges increased significantly. After tracking, we found that one of the key reasons is that the system memory is insufficient. Because the online server stores a large amount of user session information in the memory for use by the application system, when the memory is insufficient, a large amount of session information is forced to be exchanged to the hard disk, A large amount of CPU time is consumed in the exchange of internal and external memory, and the system efficiency decreases rapidly.
In view of this situation, we have expanded the memory of the server from 2 GB to 4 GB, and adjusted the storage time of user session information accordingly, so that the efficiency of the entire system will return to the ideal situation.
Due to the continuous production of new applications and the increasing number of database operations, we gradually monitored that the system database was in a busy state, the System Error Log also records insufficient resources at the database connection locations used by the server. In this context, we believe that the whole system should be scaled horizontally due to hardware configuration limitations. Therefore, we separate the database servers and configure them to another high-performance server, the defined database resources are also greatly increased, so that the performance of the entire system is in an ideal situation.
The third aspect is to optimize the application system to improve performance.
Web server configuration and corresponding hardware expansion are shortcuts to solve system performance problems, but application system optimization should also be considered, after all, it can improve the efficiency of the system with a small investment.
At the early stage of development, we have paid great attention to the utilization efficiency of the system. For example, we should remind programmers not to use user session information (sessions) to transmit large objects, and pay attention to memory collection. At the same time, through internal exchanges to promote and introduce some small and useful programming skills to improve the level of developers, through code spot check, hope to detect problems in the early stage.
During system operation, we discovered through monitoring that the free space of the memory heap of the Java Virtual Machine Based on the application server is declining, every several days, the system restarts. In addition to eliminating the cause of the system issue, we are sure that there is a problem with the development of the application system. After monitoring the JVM using tools related to the Java Virtual Machine (JVM) on the Internet, IBM found that there were objects in the system that could not recycle the memory, find the corresponding program and find that there is a "Ring" object reference in the program, so that the object cannot be recycled by the garbage collector after use. Although the process of solving this problem is very difficult, the problem cannot be fundamentally solved by upgrading hardware or adding resource configuration, which brings great risks to the system. Therefore, the analysis and solution of the entire process is completely worthwhile. Moreover, by looking for the cause of the failure, we have given the entire project team a vivid Software Quality Assurance course, it has greatly promoted the quality awareness of the project team.
Therefore, improving the performance of web servers is not just about system management.
The system is running in a series of stages.
Fourth, we should consider the future expansion and performance needs in advance.
With the development and maturity of the system, considering the increasing number of user visits, we have recently made a systematic upgrade to reserve space for the development of the system. By introducing multiple HTTP servers and application servers for parallel work, the system throughput and single point of failure (spof) capabilities are improved. Since the initial selection has fully taken into account the needs of dynamic load balancing and horizontal scaling, this upgrade does not require a fundamental change to the entire system architecture, it has no impact on applications.
The entire project lasted nearly two years. From the perspective of the system in the past two years, the entire system was successful. According to my personal experience, the system performance is not simply a problem in the system operation and management stages, but also a penetration in various stages of project demonstration, development, and operation. The performance of the entire system can be guaranteed only when performance needs are fully taken into account at all stages. In terms of technology, a series of methods such as selection evaluation, hardware expansion, application optimization, and system configuration optimization can be used comprehensively. For example, in terms of hardware expansion, it can be divided into major component expansion, vertical upgrade and horizontal upgrade. In our project practice, we used the above methods comprehensively. For example, the performance guarantee and Improvement Solution of a bank is relatively successful in terms of the development of the entire system from the daily access volume of less than 10 thousand to the number of clicks that exceed times per day.
Commentary: The practice process is more convincing. The organization and ideas are quite clear, and the advancement of technical and management measures is also very clear. There are still some limitations on the technology discussed. (This article mainly references the papers of Guangzhou huangchang and others)
Related Article

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.