文章目录

  • Question


Question

一台内存在 8G 左右的服务器,可以同时维护多少个连接?

分析:

连接是内存中的状态对象,从理论上分析,连接本身不太占用内存。不同语言连接对象大小不等,但是通常很小。下面提供一段 Java 程序

public class Server {public static void main(String[] argv) throws IOException {var serverSocket = new ServerSocket();var addr = new InetSocketAddress(3001);serverSocket.bind(addr);var list = new LinkedList<>();while(true) {var client = serverSocket.accept();list.add(client);System.out.println(list.size());}}}public class Client {public static void main(String[] argv) throws IOException, InterruptedException {var clients = new LinkedList<>();for(int i = 0; i < 1000000; i++) {var client = new Socket("127.0.0.1", 3001);clients.add(client);}Thread.sleep(10000000);}}

通过运行上面这段程序,你可以观察到以下这几个现象:

  1. 创建 100W 连接速度不是很快,这说明 TCP 连接创建有成本(3 次握手,都是网络 IO);

  2. 用jps找到对应的进程的id,在用sudo cat /proc/{进程ID}/status | grep VmHWM可以看到实际的内存占用。按照这种增长趋势,8G 内存空间可以轻轻松松存放 100W 个连接。

但是如果单机建立太多的连接,会报一个Cannot assign requested address的异常,这是因为客户端连接服务端时,操作系统要为每个客户端分配一个端口,上面的程序很快会把端口号用尽。

所以,我们可以得出一个结论:核心的问题是,通信需要缓冲区,通信需要 I/O。这是因为通信占用资源,连接本身占用资源少。


计网 - 一台内存在 8G 左右的服务器,可以同时维护多少个连接?相关推荐

  1. XTU 2021计网期中测试-内卷而疯狂

    链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 木木终于上了大学,但他感受到的并不是安逸与舒适.他发现优秀的大学,更有优秀的人.大家都太卷了!!!!! 既然不能改变它,就去适应它 ...

  2. 计网 - 传输层协议 TCP:TCP 为什么握手是 3 次、挥手是 4 次?

    文章目录 Pre TCP 协议 主机到主机(Host-To-Host) 什么是连接和会话? 双工/单工问题 什么是可靠性? TCP 的握手和挥手 TCP 协议的基本操作 建立连接的过程(3次握手) 断 ...

  3. 从创建服务器到搭建一台内网穿透服务器

    文章目录 创建服务器到搭建一台内网穿透服务器 解决VMware虚拟机ip地址经常变化的问题 安装lrzsz Linux中rz和sz命令用法详解 安装插件 安装jdk 安装maven 安装git 安装n ...

  4. 关于计网的一点复习资料

    本科在读,刚考完计网,自己整理了点东西,可读性不高,看个热闹吧,然后被爆杀真的很无语,每天都有想不到的被爆杀环节,毁灭吧累了.然后没写什么题(因为都写在纸上了),大部分都是概念性的东西,能拿来背一下罢 ...

  5. 计网/数据库面试题(更新中ing~~)

    计网/数据库面试题(更新中ing~~) <计算机网络> 1. OSI七层模型.设备 (传输层)协议的多路分用和复用 2. TCP/IP四层模型==五层模型 (传输层)TCP和UDP协议对比 ...

  6. 2020计网实验报告

    title: 计网实验报告 date: 2020-12-13 16:31:07 tags: *实验名称* 实验1 WireShark的使用 *实验时间* 2020年10月7日 10:00-11:40时 ...

  7. 【面试】计网知识点复习与总结

    [面试]计网知识点复习与总结 1. 计算机网络层次结构 ISO/OSI七层网络模型与TCP/IP五层网络模型的比较如图所示: 物理层:它的主要作用是传输比特流,进行模数转换与数模转换,这一层的数据叫做 ...

  8. 吉林大学软件学院计网复习知识点

    吉林大学软件学院计网复习知识点 目录 前言 单项选择题知识点 填空题知识点 名词解释题知识点 简答题知识点 应用题知识点 课后习题答案 尾声 前言 大家好,我是星辉,以上便是根据我手头的资料整理的,希 ...

  9. 计网复习day01 2020.8.18

    计网复习day01 2020.8.18 一些填空题 计算机网络由通信子网和资源子网组成 报文交换网络分为虚电路交换网络和数据报交换网络 OSPF的名字是开放最短路径优先,使用了分布式的链路状态协议,R ...

最新文章

  1. [C] Bellman-Ford边松弛:解决负权边
  2. UTF-8 CPP的使用
  3. python数据库编程dbf_python读写dbf文件
  4. 安装 ibm-java-x86_64-sdk-6.0-9.3.x86_64.rpm 的三步骤
  5. python笔记之while和for循环练习
  6. 解决spring和struts配合问题
  7. HbuliderX 历史版本下载
  8. 通过radius给ppp客户端分配ip地址
  9. java 线程池扩容_106. 生产环境中的线程池自动扩容与缩容的动态资源分配经验...
  10. Oracle varchar和varchar2的区别
  11. 理解矩阵、矩阵的现实意义(二)
  12. 英语语法篇 - 英语的补语
  13. 多项式轨迹--五次多项式轨迹
  14. 元宇宙+DAO=ZOO-Crypto World
  15. 软件测试工程师和WGT,三坐标和齿轮测量中心测齿轮的区别
  16. 把梳子卖给和尚(一个经典的营销故事)
  17. 计算机组成与设计:硬件/软件接口
  18. 一个普通应届生,简历上写什么能过BAJT的海选初筛?(附实例模板)
  19. VB6.0 url encode
  20. TT浏览器 v4.7 简体中文版

热门文章

  1. 验证码的产生 python
  2. 102. Leetcode 198. 打家劫舍 (动态规划-打家劫舍)
  3. 重温强化学习之函数近似
  4. 重温强化学习之马尔可夫决策过程(MDPs)
  5. 关联规则(Association Rules)笔记
  6. 文巾解题 面试题 01.01. 判定字符是否唯一
  7. MATLAB实用知识,如何对函数的输入进行检查和解析?
  8. Linux疑难杂症解决方案100篇(九)-SHELL编程正则表达式
  9. 用Tableau制作3D旋转地球
  10. redissession有容量上限吗_传输线的功率容量