什么内核参数或其他设置控制可以在 Linux 服务器上打开的最大 TCP 套接字数?允许更多连接的权衡是什么?
我注意到在使用ab对 Apache 服务器进行负载测试时,很容易最大化服务器上的开放连接。如果你不使用 ab 的 -k 选项,它允许连接重用,并让它发送超过 10,000 个请求,那么 Apache 会处理前 11,000 个左右的请求,然后停止 60 秒。查看 netstat 输出显示 11,000 个连接处于 TIME_WAIT 状态。显然,这是正常的。出于TCP 可靠性的原因,即使在客户端完成连接后,连接也会保持打开的默认值 60 秒。
这似乎是对服务器进行 DoS 的一种简单方法,我想知道它的常用调整和预防措施是什么。
这是我的测试输出:
# ab -c 5 -n 50000 http://localhost/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Completed 5000 requests
Completed 10000 requests
apr_poll: The …Run Code Online (Sandbox Code Playgroud) 没有详细说明规格,因为我知道对此没有真正的答案。但是我今天一直在用abapache 中的命令进行负载测试。
并且在从 4 个不同的数据库表加载的页面上达到每秒 70 个请求的数量(1000 个请求与 100 个并发用户),并对数据进行一些操作。所以这是一个相当沉重的页面。
该服务器目前不用于任何其他用途,它的负载只是我,因为它正在开发中。但是该应用程序将每天被许多用户使用。
但这足够了吗?或者我什至应该担心(只要它超过 X 请求一秒钟)
我想我不应该担心,但我想要一些关于这个的提示。
由于 Windows 8.1 不允许系统范围内的“Windows XP 风格”高 DPI 支持,我如何使 Microsoft 管理控制台应用程序 (mmc.exe) 具有高 DPI 感知能力?它没有“兼容性疑难解答”上下文菜单项。
我正在开发一个最终可能拥有非常大数据库的网站。该网站将成为一个艺术社区,直到 deviantART。我将运行大量查询来分析网站的使用方式。我希望某些查询会杀死数据库,因为我不知道如何优化 SQL 查询(目前)。我从一个小型 linux VPS 开始,将来会转移到物理服务器。
在这种情况下,哪个数据库的扩展性最好?
我想暂时阻止外部世界的端口 80,但希望负载均衡器通过防火墙(通过安全组),这样它就不会将实例视为不健康。我怎样才能做到这一点?
更新: 我还想知道如何只允许自己通过端口 80 访问弹性负载均衡器(但阻止其他人访问)。我知道负载均衡器没有我可以设置的特定安全组并告诉它只接受我的 IP 地址,但是还有其他方法可以做到吗?
我们希望能够按需添加更多后端服务器。现在我没有看到一种方法可以在不重新启动 haproxy 的情况下将更多后端服务器添加到配置文件中。
我正在构建一个分析包,项目要求指出我每天需要支持 10 亿次点击。是的,“亿”。换句话说,每秒持续不少于 12,000 次点击,并且最好有爆发的空间。我知道为此我需要多台服务器,但我试图在“向其投入更多硬件”之前从每个节点中获得最大性能。
现在,我已经完成了点击跟踪部分,并进行了很好的优化。我几乎只是将请求直接保存到 Redis 中(以便以后使用 Hadoop 进行处理)。该应用程序是 Python/Django,带有用于网关的 gunicorn。
我的 2GB Ubuntu 10.04 Rackspace 服务器(不是生产机器)每秒可以处理大约 1200 个静态文件(使用 Apache AB 对单个静态资产进行基准测试)。相比之下,如果我用我的跟踪链接替换静态文件链接,我仍然每秒收到大约 600 个请求——我认为这意味着我的跟踪器得到了很好的优化,因为它只比提供相同的静态资产慢 2 倍反复。
然而,当我对数百万次点击进行基准测试时,我注意到一些事情——
我的问题——
一种。看起来我已经把这台服务器最大化了吗?1,200/s 静态文件 nginx 性能与其他人经历过的性能相当吗?
湾 对于此类大容量应用程序,是否有常见的 nginx 调优?我将工作线程设置为 64,将 gunicorn 工作线程设置为 8,但调整这些值似乎对我没有多大帮助或伤害。
C。是否有任何 linux 级别的设置可能会限制我的传入连接?
d. 在长时间运行的测试中,什么会导致我的性能下降到 250r/s?同样,在这些测试期间内存没有最大化,并且硬盘使用为零。
提前致谢,所有:)
编辑 这是我的 nginx 配置——http: //pastie.org/1450749——它主要是香草,明显的脂肪被修剪掉了。
亚马逊、Facebook 和谷歌每天必须接收 TB,如果不是 PB,那么这是否意味着他们让人们以与构建常规服务器相同的方式在新机架中不断安装新硬盘和电缆,或者是否使用了不同的技术用于连接驱动器?
我正在尝试以多区域方案扩展我们的 Web 应用程序(PHP、MySQL、memcache)。目前,我们使用的设置在 ELB 和 RDS 实例后面有两个 EC2 实例,它们都在美国东部(弗吉尼亚)地区。
我们也希望在欧盟(爱尔兰)地区开展业务。这意味着那里至少有一个新的 EC2 实例(与其他实例相同,为相同的应用程序提供服务)。
我已经复制了所需的 AMI,设置了新实例,设置了相同的 ELB 配置(SSL 终止所需)并在 Route53 中配置了基于延迟的路由。它按建议工作。
但是,来自欧盟的客户存在速度问题。这是因为欧盟 EC2 实例连接到美国的 RDS 实例。据我所知亚马逊还没有启用RDS多区域复制。
您对如何在使用单个 RDS 实例时正确加速整个设置有什么建议吗?
另外,关于如何扩大规模的任何想法?理想情况下,出于各种原因,我们希望继续使用 RDS 技术。尽管如此,我愿意接受建议(我猜下一个想法是托管我们自己的 MySQL 服务器)。
scaling scalability amazon-ec2 amazon-web-services amazon-rds
是否有支持 ElasticSearch 的硬件级别的良好指南?对 Lucene 或 Solr 的推荐是一个好的起点吗?我们正在考虑推出一个部署
然后将其放大约 10 倍,以
这是一个奇怪的用例,其中查询将达到数千次/天,但响应时间需要保持足够低才能获得良好的 Ajaxy Web 应用体验。
scaling ×10
amazon-ec2 ×2
linux ×2
amazon-rds ×1
apache-2.2 ×1
dpi ×1
haproxy ×1
hard-drive ×1
hardware ×1
high-volume ×1
load-testing ×1
mysql ×1
nginx ×1
performance ×1
postgresql ×1
redis ×1
scalability ×1
tuning ×1
web-server ×1
windows-8.1 ×1