Considerations for performance and scalability during system design

 Reference: http://www.jdon.com/scalable.html, https://blog.csdn.net/chancein007/article/details/53983755,

I was recently asked how to consider performance and scalability when designing an information system. Since I didn’t have any ideas at the time, I didn’t give a good answer. After I came back, I checked the information and consulted others. general understanding.

Scalability

Scalability (extensibility) is a design indicator for the computing and processing capability of a software system. High scalability represents a kind of elasticity. During the process of system expansion and growth, the software can ensure strong vitality. Only the addition of hardware devices can achieve a linear increase in the processing capacity of the entire system, achieving high throughput and low latency and high performance.

performance

Performance is the ability of a system to handle user requests simultaneously. Performance indicators usually include response time, concurrency, throughput, and performance counters.

performance and scalability issues

  • What are performance issues? If the system is still slow for a user to access, it is a performance problem;
  • What are scalability issues? If your system is fast for one user, but slow under the high traffic of the user growing.

There is an essential difference between scalability and pure performance tuning. Scalability is a comprehensive consideration and balance of many factors such as high performance, low cost, and maintainability. Scalability pays attention to smooth and linear performance improvement, and focuses more on the level of the system. Expansion, distributed computing through cheap servers; and general performance optimization is only the performance index optimization of a single machine. What they have in common is a choice between throughput and delay according to the characteristics of the application system. Of course, horizontal scaling and partitioning will bring CAP theorem constraints.

The scalability design of software is very important, but it is difficult to master. The industry tries to save developers' energy through cloud computing or high-concurrency languages. When the system reaches a certain access scale, the load is concentrated on one or two database servers. At this time, it is difficult to expand and expand the partition. As Gavin King, the creator of the Hibernate framework , said: Relational databases are the most unscalable.

For Fabric networks, consider performance and scalability issues. We can deploy multiple peer nodes for an org, deploy multiple application servers in front of the application, and then use load balancing technology to reduce the load of a single server, and Kafka in the background can also deploy multiple servers to improve the speed of the Ordering Service.

http://www.cnblogs.com/loveis715/p/5097475.html This article is very detailed, and I have learned a lot from it.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326143064&siteId=291194637