1.Tornado_框架介绍

1.框架介绍

  1. Tronado是一个Python编写的可扩展的、无阻塞的Web应用程序框架和Web服务器
  2. Tronado以高性能著称。允许处理大量并发连接。他在设计之初,亦在解决C10K(同时处理一万个连接的缩写)问题,作业使其成为一个拥有非常高性能的框架。
  3. 拥有处理安全性,用户验证,社交网络以及外部服务器(如数据库和网站API)进行异步交互的工具

2.C10K问题

基于线程的服务器,例如Apache,为了传入连接,维护了一个操作系统的线程池。Apache会为了每个HTTP连接分卫线程池中的一个线程,如果所有的线程都处于被占用的状态并且尚有内存可用时,则生成一个新的连接。
大多数Linux发布版都是默认线程堆大小为8MB。Apache架构在大负载下变得不可预测,为每个打开得连接维护一个大线程池等待数据很容易迅速耗光服务器得内存资源

3.为什么会有这么大的负载

这就要说到底层原理,服务器同时堆许多客户提供服务,而服务器端处理流程,只要遇到了I/O操作,往往需要很长的等待时间
接收及处理输入数据(1ms)——>访问远程网络/数据库(I/O操作50ms)——>整理数据及输出(1ms)
整个流程中,中间的实在等待消耗时操作结束,而前后使用CPU,等待时间CPU空闲,浪费掉了

4.Tornado支持异步非阻塞IO模式

就如上述所说,可以换一种解决方式。就是在I/O操作时候,启动CPU操作下一个或者上一个CPU的操作,真正利用了这一段等待时间。实际算下来,只花费了一前一后两端真正占用CPU的实际。

你可能感兴趣的:(Python_Tornado,tornado,服务器,python)