问题标签 [high-traffic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
197 浏览

node.js - Nodejs - 集群微服务问题的高流量

对不起小说...

我正在开发一个 Nodejs 项目,我需要在多个文件中解密数百万个信封。我的应用程序的任何 API 都必须在 localhost 上运行。

主 API 处理客户端请求以解密一批文件。每个文件都包含数千到数百万个需要解密的信封。每个文件都被视为一个作业,这些作业由 Main API 排队,然后通过为每个作业分叉一个新进程来并发运行。(我一次只允许 5 个并发作业/分叉)在每个进程中,都会运行一个脚本来遍历并解密文件。

这运行相对较快,但不是在 Main API 派生的每个进程/脚本的代码中进行解密,我想将这个工作分发给另一个 API(称为 Decrypt API),该 API 基本上接受请求中的信封并发送在响应中返回解密的结果。

所以我创建了这个 api,然后使用'forky' 来集群它。然后从我的流程中,我没有在其中进行解密,而是向 Decrypt API 发出多个并行请求,一旦我得到响应,只需将解密的结果放在一个文件中。

起初我的问题是我在收到每个信封时就提出了请求,而没有等待请​​求返回,然后再发送下一个。如果您愿意,我基本上会发送“并行”请求,然后在每个请求的回调中处理投票。这导致我认为一次有太多未完成的请求,因为我收到了 ECONNRESET 错误。一些请求被丢弃。所以我的解决方案是在任何时候最多有 x 个未完成的请求(我使用了 10 个),以避免过多的并发请求。这看起来没问题,但后来我意识到,因为我从 MainAPI 分叉了 5 个进程,虽然每个进程都有这个新的“优秀请求”限制代码,但由于它们同时运行,我仍然遇到了一次请求过多的问题解密 API。还,这种使用两个不同微服务/API 的方法比只使用 MainAPI 的分叉进程进行解密要慢。在 Decrypt API 中,我还使用了节点“crypto”库,并且我使用的一些函数是同步的,所以我怀疑高流量是个问题,但我无法避免这些同步方法。

所以最后,我的问题是,我能做些什么来提高 Decrypt API 的速度,就像我描述的那样,我能做些什么来避免这些丢弃的请求?

如果我听起来像个菜鸟,请原谅我,但是由于这些 API 都在同一台机器和本地主机上运行,​​这可能是为什么这种方法比在每个进程中进行解密要慢的原因吗?

谢谢!

0 投票
1 回答
965 浏览

performance - Laravel 用于复杂的浏览器游戏网站

有很多关于 Laravel 性能的文章。就快速应用程序而言,它不是最好的框架,但它有很多选项以及出色的社区和文档。我想知道 Laravel 是否适合我的情况:

我目前正在开发一款浏览器游戏,希望全世界成千上万的游客都可以玩这款游戏。可能同时有超过 3000 个并发用户。该应用程序有点重,因为它需要很多不同的模块:视图、路由、会话管理、身份验证、数据库连接、cronjobs 等等。这确实是一个动态游戏,所以应用程序会被加载很多次。并且:我没有那么多钱来投资很多专用服务器(至少一开始没有)。

我也查看了其他框架。因为 Lumen、Slim 和其他一些微框架并不支持我的游戏需要的所有模块,所以我认为 Laravel 是一个不错的选择。但我真的很害怕我看到的基准。与其他框架相比,Laravel 在那里看起来并不好:它很慢,消耗大量内存并且无法处理很多请求。

所以我的问题是:Laravel 是一个有成千上万并发用户潜力的大型浏览器游戏网站的好选择吗?Caching 和 Homestead 肯定会有所帮助,但 Laravel 是一个不错的选择,还是有更好的框架?

0 投票
2 回答
748 浏览

php - php和redis之间的高流量连接

我有 php 的后端,它适用于 Redis。

但是当请求增加并且每秒超过 2000 个请求时,我收到一个错误:

TIME_WAIT 中的所有套接字。


连接示例:


我找到解决方案:http ://redis4you.com/articles.php?id=012&name=redis

但是/proc/sys/net/ipv4/tcp_tw_recycle 我不能在1中设置。不想在application和redis之间的网络上丢包。

来自 API 的新请求的 PHP 创建一个新的套接字。

有任何想法吗?

0 投票
1 回答
872 浏览

wordpress - 高流量网站的托管/服务器

对于平均每日流量约为每天 250,000 次会话(约 13 万独立用户)的 Wordpress 网站,您会推荐什么设置。在高峰时段,我们每小时可以获得约 25,000 名用户,非高峰时段每小时约 10-17,000 名用户。每月带宽约为 14TB。

我很高兴听到有关最佳设置的建议:注意:它应该是 cpanel 服务器 (apache)

  • 服务器 - 云或专用(谷歌云和亚马逊除外)
  • CPU/内存/等?
  • 内容分发网络?
  • Apache/MySQL 特定设置?
  • 高可用性?
  • 任何其他建议

非常感谢您的任何建议

0 投票
0 回答
2365 浏览

mysql - Django 显示 Python socket.error: [Errno 104] Connection reset by peer

我在 AWS 上有一个 django+mysql 网站。

客户端向网站发送post请求,然后网站查询mysql数据库并返回一个json。

我正在对它进行压力测试。我同时向网站发送 300 个帖子请求并正确获得响应。但是,如果我将发布请求的数量增加到 400,它会失败并显示以下日志。

服务器端 :

self.flush() File "/usr/lib/python2.7/socket.py", line 307, in flush self._sock.sendall(view[write_offset:write_offset+buffer_size]) 错误:[Errno 104] Connection reset by同行

客户端:

我已经为更高的 max_connections 和 timeout 调整了 mysql 配置,但它不起作用。

谁能帮我解决这个问题?谢谢。

0 投票
1 回答
784 浏览

node.js - Low download speed

Hey guys I am having a big problem and i need some advice .

I have a Dedicated server with those informations :

  • Atom C2750 8/8t 2,4 / 2,6 GHz
  • 16 GB RAM DDR3 1600MHz
  • 12TB
  • 500Mbps Bandwidth
  • List item
  • 1Gbps Network Burst

I am running a website using Nodejs where users can download high volume files .

The website evolved rapidly and I am having 10K users per day and an average of 1K concurrent users (downloads).

The problem is the server is getting lower and lower download speed on client's side so I have added a throttle to the downloads to 800Kb/s , it did help a bit but the problem remains the same what should I ?

Thanks

0 投票
0 回答
70 浏览

mysql - 使用 wordpress 站点重负载时的 MySQL 连接错误

我使用过 WordPress 网站,如果我们使用 JMeter 或在搜索引擎启动时发出多个请求 MySQL 服务器出现故障

我在我的服务器上更改了以下配置

  • key_buffer = 25M
  • max_allowed_pa​​cket = 1M
  • 线程堆栈 = 128K
  • 表缓存 = 25
  • innodb_buffer_pool_size=“64M”到“512M”
  • 最大连接数 = 200;

如何解决问题?

此问题仅发生在一次请求 200 到 500 个请求的高流量上

0 投票
2 回答
236 浏览

php - 为什么总是“为 foreach 提供的参数无效”

我想在codeigniter上做一个图表,但我总是失败。请帮助我错误的文本:遇到 PHP 错误

严重性:警告消息:为 foreach() 提供的参数无效 文件名:chart/index.php 块引用行号:16

我的观点 :

我的模型:

我的控制器:

请给我解决方案...

0 投票
1 回答
4394 浏览

php - Apache 2.4 php 7.2 Apache(php 模块)增加最大连接数以处理 10000

我有 apache(2.4) 和 php(7.2) 的项目,其中 apache 使用 mpm_fork 如何增加 apache 中的最大连接数以处理 10,000 个并发连接?我正在使用https://loader.io进行测试,它最多只能处理 5000 个并发连接(在 15 秒内)。

这是我当前的 apache 配置:

考虑一下,我的硬件没有问题,我检查了我的资源使用情况,我在测试期间从未超过 20% 的 cpu 和内存使用率。

0 投票
1 回答
433 浏览

java - 有没有办法配置 Spring Boot API 来设置传入请求的连接超时?

我已经在 Wildfly 10 上部署了我的高流量 SpringBoot 应用程序。这个应用程序的服务器架构是 nginx(Angular 应用程序)->(反向代理)->wildfly 服务器。由于我们在几个小时内获得高流量,8080 端口(wildfly 应用程序端口)停留在 CLOSE_WAIT,因为 nginx 在一段时间后关闭了连接。

如果请求时间大于 5 秒,我正在寻找配置 Spring Boot 应用程序以关闭连接。

例子:

对于test2获取HTTP方法有没有办法配置spring boot application/Wildfly/centos来设置传入请求的连接超时?