大并发服务器所遇问题和简单应对框架思路

服务器设计目标

  • 高性能(High Performance, HP);
  • 高可用(High Availability, HA);
  • 伸缩性(Scalability);

分布式设计问题

  • 负载均衡;
  • 分布式存储;
  • 分布式计算;

大并发服务器设计和迭代更新思路

大型网站架构

  • Step1Web(e.g. HTTP) Server 和 Application(e.g. DataBase) Server 分离,以保证高可用性(HA);
  • Step2
    ① Web动静资源分离:
    静态资源(html,js,css,img等磁盘文件),静态请求由前端服务器进行响应(HTTP Server, e.g. Apache/Nginx/…);
    动态资源(jsp,php等可执行文件或业务操作),动态请求由后端服务器进行响应(Application Server,e.g. JBoss/Tomcat/…);
    ② 缓存处理(可缓存位置):
    客户端(Browser)缓存,减少对网站的访问;
    前端页面缓存(Front Page Cache),减少对Web应用服务器的请求;
    页面片段缓存(Edge Side Includes,ESI),对于动态页面中的非动态内容也可做缓存,降低请求的工作量;
    本地数据缓存,对数据库数据进行,减少Web Server对数据库的查询;

服务器性能四大杀手

场景 应对
数据拷贝 造成IO高使用率,使用缓存来缓解
环境切换 进程/线程的上下文切换会占用较多机器周期,所以创建线程并不是一味的好,即理性创建线程:
①单核服务器:采用有限状态机效率最佳;
②多核服务器:多线程能够充分发挥效能和性能;
内存分配 使用内存池,作为统一的内存资源管理
锁竞争 如何减少因为锁造成的等待和空耗,如何避免死锁和锁的竞争

你可能感兴趣的:(muduo,分布式,多线程,并发编程,linux,thought)