精华内容
下载资源
问答
  • 曾几何时我们还在寻求网络编程中C10K问题的解决方案,但是现在从硬件和操作系统支持来看单台服务器支持上万并发连接已经没有多少挑战性了。 我们先假设单台服务器最多只能支持万级并发连接,其实对绝大多数应用来说...

    曾几何时我们还在寻求网络编程中C10K问题的解决方案,但是现在从硬件和操作系统支持来看单台服务器支持上万并发连接已经没有多少挑战性了。

    我们先假设单台服务器最多只能支持万级并发连接,其实对绝大多数应用来说已经远远足够了,但是对于一些拥有很大用户基数的互联网公司,往往面临的并发连接数是百万,千万,甚至腾讯的上亿(注:QQ默认用的UDP协议)。虽然现在的集群,分布式技术可以为我们将并发负载分担在多台服务器上,那我们只需要扩展出数十台电脑就可以解决问题,但是我们更希望能更大的挖掘单台服务器的资源,先努力垂直扩展,再进行水平扩展,这样可以有效的节省服务器相关的开支(硬件资源,机房,运维,电力其实也是一笔不小的开支)

    那么到底一台服务器能够支持多少TCP并发连接呢?


    常识一:文件句柄限制

    在linux下编写网络服务器程序的朋友肯定都知道每一个tcp连接都要占一个文件描述符,一旦这个文件描述符使用完了,新的连接到来返回给我们的错误是“Socket/File:Can't open so many files”

    这时你需要明白操作系统对可以打开的最大文件数的限制。

    • 进程限制

      • 执行 ulimit -n 输出 1024,说明对于一个进程而言最多只能打开1024个文件,所以你要采用此默认配置最多也就可以并发上千个TCP连接。

      • 临时修改:ulimit -n 1000000,但是这种临时修改只对当前登录用户目前的使用环境有效,系统重启或用户退出后就会失效。

      • 重启后失效的修改(不过我在CentOS 6.5下测试,重启后未发现失效):编辑 /etc/security/limits.conf 文件, 修改后内容为

        * soft nofile 1000000

        * hard nofile 1000000

      • 永久修改:编辑/etc/rc.local,在其后添加如下内容

        ulimit -SHn 1000000

    • 全局限制

      • 执行 cat /proc/sys/fs/file-nr 输出 9344 0 592026,分别为:1.已经分配的文件句柄数,2.已经分配但没有使用的文件句柄数,3.最大文件句柄数。但在kernel 2.6版本中第二项的值总为0,这并不是一个错误,它实际上意味着已经分配的文件描述符无一浪费的都已经被使用了 。

      • 我们可以把这个数值改大些,用 root 权限修改 /etc/sysctl.conf 文件:

        fs.file-max = 1000000

        net.ipv4.ip_conntrack_max = 1000000

        net.ipv4.netfilter.ip_conntrack_max = 1000000

    常识二:端口号范围限制?

    操作系统上端口号1024以下是系统保留的,从1024-65535是用户使用的。由于每个TCP连接都要占一个端口号,所以我们最多可以有60000多个并发连接。我想有这种错误思路朋友不在少数吧?(其中我过去就一直这么认为)

    我们来分析一下吧

    • 如何标识一个TCP连接:系统用一个4四元组来唯一标识一个TCP连接:{local ip, local port,remote ip,remote port}。好吧,我们拿出《UNIX网络编程:卷一》第四章中对accept的讲解来看看概念性的东西,第二个参数cliaddr代表了客户端的ip地址和端口号。而我们作为服务端实际只使用了bind时这一个端口,说明端口号65535并不是并发量的限制。

    • server最大tcp连接数:server通常固定在某个本地端口上监听,等待client的连接请求。不考虑地址重用(unix的SO_REUSEADDR选项)的情况下,即使server端有多个ip,本地监听端口也是独占的,因此server端tcp连接4元组中只有remote ip(也就是client ip)和remote port(客户端port)是可变的,因此最大tcp连接为客户端ip数×客户端port数,对IPV4,不考虑ip地址分类等因素,最大tcp连接数约为2的32次方(ip数)×2的16次方(port数),也就是server端单机最大tcp连接数约为2的48次方。

    总结

    上面给出的结论都是理论上的单机TCP并发连接数,实际上单机并发连接数肯定要受硬件资源(内存)、网络资源(带宽)的限制,至少对我们的需求现在可以做到数十万级的并发了,你的呢?

    这种单台机器10w并发,不考虑内存cpu的实现,主要是程序网络模型的选择。项目在Github上有提供https://github.com/yaocoder/HPNetServer

    转载:点击打开链接

    展开全文
  • 曾几何时我们还在寻求网络编程中C10K问题(有关C10K问题请见文章《The C10K problem(英文在线阅读、英文PDF版下载、中文译文)》)的解决方案,但是现在从硬件和操作系统支持来看单台服务器支持上万并发连接已经...

    前言


    曾几何时我们还在寻求网络编程中C10K问题(有关C10K问题请见文章《The C10K problem(英文在线阅读英文PDF版下载中文译文)》)的解决方案,但是现在从硬件和操作系统支持来看单台服务器支持上万并发连接已经没有多少挑战性了。

    我们先假设单台服务器最多只能支持万级并发连接,其实对绝大多数应用来说已经远远足够了,但是对于一些拥有很大用户基数的互联网公司,往往面临的并发连接数是百万、千万、甚至腾讯的上亿(注:QQ默认用的UDP协议,具体请见讨论贴《为什么QQ用的是UDP协议而不是TCP协议?》)。

    虽然现在的集群,分布式技术可以为我们将并发负载分担在多台服务器上,那我们只需要扩展出数十台电脑就可以解决问题,但是我们更希望能更大的挖掘单台服务器的资源,先努力垂直扩展,再进行水平扩展,这样可以有效的节省服务器相关的开支(硬件资源、机房、运维人力、电力其实也是一笔不小的开支)。

    那么到底一台服务器能够支持多少TCP并发连接呢?这就是本文要讨论的问题。

    C10K问题系列文章


    本文是C10K问题系列文章中的第1篇,总目录如下:

    常识一:文件句柄限制


    在linux下编写网络服务器程序的朋友肯定都知道每一个tcp连接都要占一个文件描述符,一旦这个文件描述符使用完了,新的连接到来返回给我们的错误是“Socket/File:Can't open so many files”。

    这时你需要明白操作系统对可以打开的最大文件数的限制。

    1进程限制


    执行 ulimit -n 输出 1024,说明对于一个进程而言最多只能打开1024个文件,所以你要采用此默认配置最多也就可以并发上千个TCP连接。临时修改:ulimit -n 1000000,但是这种临时修改只对当前登录用户目前的使用环境有效,系统重启或用户退出后就会失效。

    重启后失效的修改(不过我在CentOS 6.5下测试,重启后未发现失效),编辑 /etc/security/limits.conf 文件, 修改后内容为:

    • soft nofile 1000000
    • hard nofile 1000000

    永久修改:编辑/etc/rc.local,在其后添加如下内容:

    • ulimit -SHn 1000000

    2全局限制


    执行 cat /proc/sys/fs/file-nr 输出 9344 0 592026,分别为:

    • 1. 已经分配的文件句柄数,
    • 2. 已经分配但没有使用的文件句柄数,
    • 3. 最大文件句柄数。

    但在kernel 2.6版本中第二项的值总为0,这并不是一个错误,它实际上意味着已经分配的文件描述符无一浪费的都已经被使用了 。

    我们可以把这个数值改大些,用 root 权限修改 /etc/sysctl.conf 文件:

    • fs.file-max = 1000000
    • net.ipv4.ip_conntrack_max = 1000000
    • net.ipv4.netfilter.ip_conntrack_max = 1000000

    常识二:端口号范围限制?


    操作系统上端口号1024以下是系统保留的,从1024-65535是用户使用的。由于每个TCP连接都要占一个端口号,所以我们最多可以有60000多个并发连接。我想有这种错误思路朋友不在少数吧?(其中我过去就一直这么认为)

    我们来分析一下吧。

    如何标识一个TCP连接:
    系统用一个4四元组来唯一标识一个TCP连接:{local ip, local port,remote ip,remote port}。好吧,我们拿出《UNIX网络编程:卷一》第四章中对accept的讲解来看看概念性的东西,第二个参数cliaddr代表了客户端的ip地址和端口号。而我们作为服务端实际只使用了bind时这一个端口,说明端口号65535并不是并发量的限制。

    server最大tcp连接数:
    server通常固定在某个本地端口上监听,等待client的连接请求。不考虑地址重用(unix的SO_REUSEADDR选项)的情况下,即使server端有多个ip,本地监听端口也是独占的,因此server端tcp连接4元组中只有remote ip(也就是client ip)和remote port(客户端port)是可变的,因此最大tcp连接为客户端ip数×客户端port数,对IPV4,不考虑ip地址分类等因素,最大tcp连接数约为2的32次方(ip数)×2的16次方(port数),也就是server端单机最大tcp连接数约为2的48次方。

    本文小结


    上面给出的结论都是理论上的单机TCP并发连接数,实际上单机并发连接数肯定要受硬件资源(内存)、网络资源(带宽)的限制,至少对我们的需求现在可以做到数十万级的并发了,你的呢?


      原文链接: http://www.52im.net/thread-561-1-1.html

    (原文链接:http://yaocoder.blog.51cto.com/2668309/1312821/,有改动)
    展开全文
  • 电脑,都是Windows 7系统(WindowsXP和Windows10应该也可以,没有试过),两电脑的网卡驱动都是好的。 硬件环境 电脑1:有线网卡是好的,我们称之为客户端电脑; 电脑2:有线网卡是好的,同时无线网卡也是好的,...

    软件环境
    两台电脑,都是Windows 7系统(WindowsXP和Windows10应该也可以,没有试过),两台电脑的网卡驱动都是好的。

    硬件环境
    电脑1:有线网卡是好的,我们称之为客户端电脑;
    电脑2:有线网卡是好的,同时无线网卡也是好的,我们称之为服务器端电脑;

    客户端电脑和服务端电脑通过网线连接起来。
    服务器端wifi连接好,并且wifi能够正常上网。

    服务端电脑配置
    查看服务端电脑网络适配器,如下图,无线网络连接已经连上外网可上网,本地连接接网线连接的是客户端电脑
    在这里插入图片描述
    打开无线网络连接属性
    在这里插入图片描述
    选择共享标签
    在这里插入图片描述
    家庭网络连接选连接客户端网卡
    在这里插入图片描述
    勾选 允许其他网络用户通过此计算机的Internet连接来连接(N)
    在这里插入图片描述
    点击确认按钮即可
    查看连接客户端网卡
    在这里插入图片描述
    可以看到已经有了ip地址,进一步查看
    在这里插入图片描述
    可以看到,刚刚设置共享网络的时候,系统自动填写好的,如果没有,尝试手动写一个局域网IP.
    客户端电脑配置
    查看电脑网络适配器
    在这里插入图片描述
    可以看到网卡,本地连接,将此网卡禁用、然后启用,等它自动分配好IP
    在这里插入图片描述
    自动分配了192.168.137.15,已经DNS网关等。自动分配IP的前提是,服务端电脑配置好,网线连接好。
    如果没有自动分配IP,请自行手动配置,如图
    在这里插入图片描述
    注意默认网关和DNS服务器,要填服务端电脑的网卡(和客户端电脑连接的)地址。
    测试验证
    在客户端电脑打开网页,能够正常上网即可说明配置成功。
    本博客编写发布就是在客户端电脑上完成的。
    小结
    本文描述的是,客户端电脑通过网线连接服务端电脑,再利用服务端电脑无线网卡连接网络,从而客户端电脑实现上网。
    理论上来说,服务器端无线网卡换成另一块有线网卡也可实现客户端电脑上网的功能。但是本人尝试,用新买的usb转网口的硬件作为有线网络网卡,实验结果失败。本人将这个原因归结为硬件有问题,有机会再尝试。
    后来的测试发现,确实是之前的硬件有问题,如下新买的不能用于共享网络的usb转网口:
    在这里插入图片描述
    我测试成功的另外一个usb转网口硬件,即客户端主机通过网口连接到这根usb转网口,usb线插在服务器端电脑,通过服务端电脑自带的网卡上网。淘宝购买地址https://item.taobao.com/item.htm?spm=a1z09.2.0.0.15d82e8dyaMyNO&id=39188751044&_u=v1feeev396f4,声明一下,本人并不是特意为大广告,本人为程序员,只为各位读者提供方案,如下图测试成功的硬件
    在这里插入图片描述

    展开全文
  • 服务器使用笔记本网络连接外网

    千次阅读 2019-09-23 13:48:27
    、首先,需要把服务器和笔记本连接到同一网络内, 可以选择笔记本和服务器直连,笔记本和服务器IP配置成同一网段,下面是我的配置。 服务器IP,配置为192.100.200.140 笔记本IP,配置为192.100.200.57 两...

    由于服务器经常部署在机房,并没有外网,连不上外网

    需要使用自己笔记本的网络供服务器使用。

    笔记本连接手机热点,再分享给服务器。

    一、首先,需要把服务器和笔记本连接到同一网络内,

    可以选择笔记本和服务器直连,笔记本和服务器IP配置成同一网段,下面是我的配置。

    服务器IP,配置为192.100.200.140

    笔记本IP,配置为192.100.200.57

    两台机器能够互相ping通。

    二、服务器默认路由设置为笔记本IP

    ip route add default via 192.100.200.57 dev eno1

    添加之后查看路由 ip route show

    三、笔记本网卡设置共享

    进入笔记本网卡属性设置,点击共享,勾选允许其他网络用户通过此计算机的internet连接来连接。

    下拉框选择本地网卡。

    注意:这步选择之后本地网卡配置静态IP,可能会被改变,需要重新配置。

    四、此时在服务器上已经可以连接外网。

    ping www.baidu.com,正常则已连外网。

    如果不正常,可以先尝试ping 8.8.8.8,查网络是否可以通畅。通了之后配置DNS即可

     

     

     

    展开全文
  • scp /home/slavel.hadoop/文档/id_rsa root@SY-002:/home/hadoopscp 文件路径 root@ip:第二台服务器的路径
  • 测试两台服务器之间的网络带宽

    万次阅读 2012-05-16 09:38:12
    之前做了个项目,说要测试两台服务器之间的带宽,本想通过拷贝来进行测试,后来客户觉得得出的数据没有说服性,于是改拿工具来进行测试。我们这回用的工具名字叫iperf。 iperf它是网络性能测试的工具,分为...
  • 这些天遇到一问题,有3台阿里云服务器,其中一台用办公室网络访问时极不稳定(ssh和数据库打不开),其他两天没事。 ...  ssh -p xx user@ip ...解决办法2:在一台服务器上装VPN,然后通过VPN来访问网络不稳定的服务器。
  • 购买了阿里云服务器的朋友们不知道有没有遇到这样的坑,就是当你雄心壮志、兴高采烈地购买完服务器想到大展身手的时候,却尴尬无奈地发现无法远程连接服务器!嗯?这是咋回事哩,犹记得腾讯云的服务器一下子就连...
  • 最近公司自己购买了一台物理服务器就出现这样的问题。就是手机卡是移动的,打开流量能上网,用手机自带的浏览器也能访问我们的网址,即我们的项目,可是app却访问不了。各位程序员兄弟遇到过吗?知道怎么解决不。
  • 我们有一台新加坡的服务器,访问速度很快,这时我们可以利用新加坡的 服务器作跳板,代理我们的请求。新加坡服务器nginx,配置 upstream bbbbb.com{ server ccccc.com  //需要访问的域名。 server ccccc.com  ...
  • 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 4
  • 购买了了 阿里云服务器 发现内网ip ping不通 (外网ip 需要设置安全组) 查询资料后发现 不同账号下的服务器(几个同学分别租的 )即使在同一地区也可能ping 不通 需要设置一些东西
  • 一台台式机,装了windows7系统,自带网卡和WIFI,windows7台式机通过wifi已连接外网。   问题: 笔记本linux系统怎么通过windows台式机连接上网?   步骤:   1 用网线连接笔记本和台式机   2 台式机...
  • 如何把文件上传到另外一台服务器1

    千次阅读 2015-09-08 09:56:58
    如何把文件上传到另外一台服务器【转】 原文:http://www.cnblogs.com/cnaspnet/archive/2008/09/23/716881.html   在程序部署上经常遇到一个问题,为了安全,速度,一般都是把数据库和程序分开放在不同的服务器.一般...
  • 本地多台服务器部署远程连接及配置防火墙 本文讨论如何利用端口映射和防火墙来保证多台内网服务器的公网远程连接,以及连接的安全性。 背景 在高校项目实施过程中,一些大型项目需要部署多台服务器节点,有些公司不...
  • 一台服务器安装多个zookeeper服务

    万次阅读 2017-07-10 16:51:56
    本文在一台机器上模拟3个 zk server的集群安装 1.1 下载解压 解压到3个目录(模拟3台zk server): /home/hadoop/zookeeper-1 /home/hadoop/zookeeper-2 /home/hadoop/zookeeper-3 1.2 创建每个目录下conf/zoo.cfg...
  • 一台服务器同时配置内外网地址

    千次阅读 2018-06-07 19:03:12
    背景:本台服务器有2个网卡eth0,eth1,其中eth0配置外网,eht1配置内网,要同时内外网都能访问该服务器。依次做以下配置1.外网网卡不配置网关,如下图网关注释了vi /etc/sysconfig/network-scripts/ifcfg-eth02....
  • 场景:业务数据库是oracle 11g ,现在需要在另外一台服务器上安装SQLServer2012 并抽取oracle数据库中的数据 首先是安装服务器系统,WinServer2008R2 64位 操作系统安装完成后,拷贝数据库镜像,加载虚拟光驱,...
  • 台服务器百万并发长连接支持

    万次阅读 多人点赞 2016-07-18 14:31:52
    所以在10K连接时,一台笔记本电脑的速度甚至超过了16核的服务器。 C10M问题——未来十年 不远的将来,服务器将要处理数百万的并发连接。IPv6协议下,每个服务器的潜在连接数都是数以百万级的,所以处理...
  • 曾几何时我们还在寻求网络编程中C10K问题的解决方案,但是现在从硬件和操作系统支持来看单台服务器支持上万并发连接已经没有多少挑战性了。我们先假设单台服务器最多只能支持万级并发连接,其实对绝大多数应用来说...
  • 问题:一台Windows Server 2008服务器上装有四个数据库,如下图:我们知道可以在服务器上通过“主机名\实例名”的方式用sa账户来登录不同数据库,如下图:但是局域网内其他计算机如何访问该服务器上不通数据库实例呢...
  • 一、给一台新的服务器装系统时遇到的小坑 给公司新买的一台DELL服务器安装ESXi 6.7系统,刚开始只是用U盘作为启动盘打开看了看, 但是并没有安装到服务器的硬件上,第一次接触给一台新的服务器做系统有点不知道从...
  • 一台服务器绑定多个IP

    千次阅读 2013-07-08 23:45:52
     1:在同一台服务器上客户有要求:要是大家都用想同的IP(多站点共享一个IP)那么有一个站点被百度或者谷歌拉入沙盒系统或者黑名单,那么别的站点会受到牵连,这时候客户要求独享一个IP地址,不让被牵连的情况出现...
  • 最近公司进行网络改造, 给每个工程组分配不同的网段,使得组织间的网络不能互相访问,在我重新配置完我们组的网络后,刚开始可以使用台式机连接服务器,但是过了段时间重启后,所有的windows服务器都不能ping通,...
  • Muduo 网络编程示例之六:限制服务器的最大并发连接数 陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice t.sina.com.cn/giantchen 这是《Muduo 网络编程示例》系列的第六篇文章。 Muduo 全系列文章列表: ...
  • 如何连接服务器

    千次阅读 2019-01-16 13:36:47
    - 本篇文章是:教跟我一样不会连接远程云服务器的小白们 ** 首先你已经申请到一一个公网ip(在阿里云/腾讯云/等等许多地方都可以租到) 以下教你如何步步连接 首先在打开命令行窗口(CTRL +R) 输入mastc指令...
  • source: click here Windows 2000 Server安装成功后,一般...那么,能否在一台服务器上设置多个Web站点(以下我们简称为“一机多站”)呢?答案是肯定的,并有多种途径可以达到这一目 的。我们知道,网络上的每一个Web
  • 、使用多线程实现多客户端连接服务端代码: package com.test.net; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net....
  • 文件服务器(被挂载机):192.168.1.100 操作机(挂载到机):192.168.1.200 也就是说,你在操作机上进行的操作,实际上都到文件服务器上去了;   1. 开启NFS服务: 在文件服务器(被挂载机)上 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 507,993
精华内容 203,197
关键字:

一台服务器连接不同的网络