美文网首页
几个网络相关的问题

几个网络相关的问题

作者: 莫那一鲁道 | 来源:发表于2019-06-05 22:25 被阅读0次

    1 一台机器最多支持多少 tcp 连接

    首先,一个连接的组成是 【local ip, local port, remote ip, remote port】,作为服务端 ,前两者是不变的。

    那么一个端口,ipv4地址,2的32 次方 * 端口数(2 的 16 次方)= 2的48 次方

    另外,还需要修改文件句柄大小。ulimit 是一个进程的句柄大小。默认 1024.

    2 连接数过多会带来什么影响

    连接数过多之tcp回收问题 time wait,即服务端主动关闭连接。

    可修改 vi /etc/sysctl.conf 文件,修改 timeout,socket 回收,重用 tcp,开启 syn cookies。 4 个方式。

    3 cpu0 显示繁忙

    软中断过高,而且大部分都集中在同一个CPU。

    用软件处理,有 RPS,通过对流的 hash,负载到不同的 cpu,问题是不能够很好的让 进程的 cpu 和处理中断的 cpu 是同一个 cpu,导致 cache miss。为了解决这个问题,linux 后来的版本,有个 RFS 的方案,防止 cache miss。但是据说还是不太好用。

    购买支持多队列的网卡硬件,可以彻底解决 软中断集中在单个 cpu0 的问题(看版本)。

    从这个话题换个角度说:当你的网卡没有打满,cpu 满载了,除了用 pidstat 看看是不是程序问题,或者 cs 问题,还可以看看是不是 cpu0 软中断太多导致的。

    4 time wait 和 close wait 区别

    time wait 是主动关闭,这个是为了确保旧连接的数据对新连接的影响。通常是 2msl。而且资源会被占用。

    解决办法,1 尽量不要主动断开连接。

    2 另外,关闭 socket 的 linger 选项。

    close wait 对方关闭。此时,我们需要再调一次 close 来主动关闭。

    5 写文件经历几层 cache

    普通调用:1 层,如果是 DIO,则是 0 层。


    image.png

    6 tcp 滑动窗口是什么

    滑动窗口是接受数据端使用的窗口大小,用来告知发送端接收端的缓存大小,以此可以控制发送端发送数据的大小,从而达到流量控制的目的

    7 为什么有网卡中断

    可以认为是“唤醒” CPU 处理网卡数据,否则网卡缓存会溢出,导致丢弃数据。

    还有一种 DMA 的方式。

    8 bio 有什么好处,什么地方用 bio

    BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解。

    相关文章

      网友评论

          本文标题:几个网络相关的问题

          本文链接:https://www.haomeiwen.com/subject/tjlexctx.html