Home | 简体中文 | 繁体中文 | 杂文 | 知乎专栏 | Github | OSChina 博客 | 云社区 | 云栖社区 | Facebook | Linkedin | 视频教程 | 打赏(Donations) | About
知乎专栏多维度架构 微信号 netkiller-ebook | QQ群:128659835 请注明“读者”

第 5 章 多维度架构之会话数

目录

5.1. 路由器和防火墙的会话数
5.2. 负载均衡设备的会话数
5.3. 服务器的会话数
5.4. 应用程序的会话数

上几期我们谈了,多维度架构中的网络损耗和超时时间,今天我们谈谈另一个在多维度架构中非常重要的技术点「会话数」。会话数的英文是 Session,请不要与HTTP服务中的SESSION混淆。

在无状态服务应用中会话数是不断释放的,例如 HTTP,SMTP 协议,当WEB服务器完成请求后就会关闭 TCP 端口,这是会话数就被释放。但是基于 Socket 长连接的服务器会一直占用会话数。

5.1. 路由器和防火墙的会话数

之前从没想过会话数会被用光的情况,第一次遇到会话数不够的情况是公司办公室网络出口,公司的出口是一台 Juniper 入门级网络设备,估计会话数2048 左右,适合100人左右的公司。我们遇到的问题就是局域网上网慢,网页加载总是一半或部分资源加载不出来。经过排查发现是会话数不够用了,升级了 Juniper 企业级的设备后,就立即解决了,直到公司员工数量暴涨到800多人,仍能提供服务。

后来我们又在IDC也遇到会话数用尽的问题,当时使用 Cisco PIX 防火墙,我们提早发现了可能随着业务的发展,后面会话数会成为瓶颈,提前升级了防火墙 Cisco ASA 5550。

网络设备中,交换机的背板带宽决定了数据的转发能力,带宽不够,就会延迟。路由器和防火墙的会话数决定了你能同时建立多少个 TCP连接,会话数不够,即使你的服务器CPU没有负载,内存没有用尽,磁盘IO闲置,用户仍然进不来,无法建立TCP连接。

而有状态的 Socket 服务是持久占用会话数,比较好统计。无状态协议(如HTTP)是动态会话数,会有峰值访问,难以预测。会话数达到 80% 的时候,就要预警了。所以监控系统要将会话数也监控起来。