小编Yuj*_*ita的帖子

这是否证明网络带宽瓶颈?

我错误地认为我的内部 AB 测试意味着我的服务器每秒可以处理 1k 并发 @3k 命中。

我目前的理论是网络是瓶颈。服务器无法足够快地发送足够的数据。

来自 blitz.io 的 1k 并发的外部测试显示我的命中/秒上限为 180,页面响应时间越来越长,因为服务器每秒只能返回 180。

在此处输入图片说明

我已经从 nginx 提供了一个空白文件并将其固定:它以 1:1 的并发比例扩展。

在此处输入图片说明

现在为了排除 IO / memcached 瓶颈(nginx 通常从 memcached 中提取),我从文件系统提供了缓存页面的静态版本。

在此处输入图片说明

结果与我原来的测试非常相似;我的上限约为 180 RPS。

将 HTML 页面一分为二使 RPS 翻倍,因此它绝对受页面大小的限制。

在此处输入图片说明

如果我从本地服务器内部使用 ApacheBench,我会在高传输速率下在整页和半页上获得大约 4k RPS 的一致结果。传输速率:62586.14 [Kbytes/sec] 接收

如果我从外部服务器 AB,我得到大约 180RPS - 与 blitz.io 结果相同。

我怎么知道这不是故意节流?

如果我从多个外部服务器进行基准测试,所有结果都会变得很差,这让我相信问题出在我的服务器出站流量上,而不是我的基准测试服务器 / blitz.io 的下载速度问题。

所以我回到我的结论,我的服务器不能足够快地发送数据。

我对吗?还有其他方法可以解释这些数据吗?是设置多台服务器+负载均衡的解决方案/优化,每个服务器每秒可以提供180次点击?

我对服务器优化很陌生,所以我很感激解释这些数据的任何确认。


出站流量

以下是有关出站带宽的更多信息: 网络图显示最大输出为 16 Mb/s:每秒 16 兆位。听起来一点也不像。

由于一个关于节流的建议,我调查了这个,发现 linode 有一个 50mbps 的上限(我什至没有接近击中,显然)。我把它提高到100mbps。

由于 linode 限制了我的流量,而我什至没有达到它,这是否意味着我的服务器确实应该能够输出高达 100mbps 但受到其他一些内部瓶颈的限制?我只是不明白如此大规模的网络是如何工作的;他们真的能像从硬盘读取数据一样快地发送数据吗?网管有那么大吗?

在此处输入图片说明


综上所述

1:基于上述,我想我绝对可以通过在多 nginx …

performance nginx apache-2.2

14
推荐指数
2
解决办法
1277
查看次数

来自该网络的所有连接都卡在 SYN_RECV 状态,来自我家或手机的连接正确建立

我的服务器(一个 linode VPS)昨天突然开始在每次请求时超时。

我在网络方面非常缺乏经验,很想学习调试这些连接问题的过程。

让我感到困惑的是,昨天,有些人(我的手机、我在家、家里的朋友)可以一直访问该站点,我看到netstat已经建立了连接。我禁用了防火墙并将 iptables 设置为接受所有连接,以排除将我们的 IP 列入黑名单的任何奇怪的自动规则。我不确定它是否相关,但是来自本地网络的 traceroute 超时 - 来自外部某些机器的 traceroute 找到了我的服务器。

通过与运行正常的开发服务器上的设置进行比较,我确认了各种设置是正确的。

以下文件与我的开发环境匹配(除了它们各自的 ip 地址):

/etc/hosts 
/etc/hosts.allow
/etc/hosts.deny
/etc/networking/interfaces 
ifconfig
Run Code Online (Sandbox Code Playgroud)

Apache 正在侦听端口 80,设置看起来与我正在运行的服务器完全相同。

# server that doesn't work:
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      22008/apache2
tcp        0      0 69.164.201.172:80       71.56.137.10:57487      SYN_RECV    -

# server that does work
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3334/apache2
tcp        0      0 72.14.189.46:80         71.56.137.10:57490      ESTABLISHED 20931/apache2
Run Code Online (Sandbox Code Playgroud)

我的理解尝试

每次加载页面时,都会netstat -an | grep :80显示处于 SYN_RECV 状态的所有连接。

tcp        0      0 …
Run Code Online (Sandbox Code Playgroud)

networking debugging tcp apache-2.2

6
推荐指数
1
解决办法
3万
查看次数

Linode Lish Shell Vim 和 Nano 渲染问题:线条未出现/光标位置错误

我正在使用 linode VPS,我刚刚将我的一台服务器克隆到我的开发服务器,就像我之前多次做过的那样。

像往常一样,在正确更新SSH之前无法访问。/etc/network/interfaces我通过 ssh 和基于 Web 的 ajax 控制台登录 linode lish shell。

我尝试修改接口文件,但光标位置似乎错误。我将开始修改一行,另一行的内容会突然出现。保存并打开文件,结果发现我什至没有在那一行上写字!或者,在我尝试输入一些文本之前,我刚刚写的行甚至不可见。

bug 行为在 nano 和 vim 中是一致的。

我会联系支持人员,但在紧急情况下他们并不总是在场。这里有什么想法吗?

这是怎么回事?我应该去哪里调试这个?我很高兴这不是生产环境问题。我的接口文件是 foobared,我什至无法注释掉正确的行。

在此输入图像描述

linux terminal vim vi linode

3
推荐指数
1
解决办法
1201
查看次数

标签 统计

apache-2.2 ×2

debugging ×1

linode ×1

linux ×1

networking ×1

nginx ×1

performance ×1

tcp ×1

terminal ×1

vi ×1

vim ×1