问题标签 [high-load]

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 投票
4 回答
1580 浏览

java - Full GC后socket连接变慢的原因是什么?

我们有一个客户端服务器应用程序,1 个服务器,大约 10 个客户端。它们使用自定义查询通过 tcp 套接字进行通信。

系统已经运行了好几个月了,但是在某个时间点,在每天大约 50s 的定时服务器 FULL GC 之后,我们发现客户端发送的查询和服务器收到的响应之间的时间很长,> 10-20 秒。大约 3 小时后,系统恢复正常,一切都恢复正常。

在调查该问题时,我们发现:

  1. 客户端和服务器上都没有垃圾收集问题
  2. 服务器上的查询处理时间很短。
  3. 服务器上的负载很高。
  4. 网络带宽未饱和。
  5. 在 FULL GC 期间没有重置连接(在此之前,每天的 FULL GC 是正常事件)
  6. 机器和操作系统最近从 Centos 6(内核 2.6.32)更改为 Centos 7(内核 3.10.0),但新配置经过了广泛的测试。Oracle JDK 版本也从 1.7.65 更改为 1.7.75。

我们在服务器上进行了线程转储:

FilterInputStream.read()如下:

in我们的代码中是一个BufferedInputStream.

问题是:为什么在 Full GC 暂停后大多数连接变慢了?为什么堆栈跟踪以 结尾FilterInputStream.read()?它不应该BufferedInputStream在套接字输入流或套接字输入流中的某个地方结束吗?此读取会导致服务器负载高吗?

我们用来阅读的代码:

在哪里:

这是来自运行良好的客户端连接的堆栈跟踪:

更新:

关于 EJP 答案:

  1. 没有涉及 EOS,连接已建立,但速度非常慢

  2. 即使有 EOS,我也看不到代码如何在 EOS 上旋转,for它受constructLength值的限制。但是,建议的改进仍然有效。

  3. 存在问题的堆栈跟踪以对 ( ) 的读取结束,该DataInputStream( (_socketDIS.read()) 继承自FilterInputStream.read(),请参见上面的代码。DataInputStream,不是BufferedInputStream错过了read()。这里FilterInputStream.read()有一个in.read()被调用的 a BufferedInputStream,这个有自己read()定义的方法。但是堆栈跟踪在中间停止,没有到达BufferedInputStream.read(). 为什么?

0 投票
1 回答
696 浏览

php - 改善大流量下服务器响应的延迟

我有一个电子商务应用程序,当 5 到 10 个用户使用它时它可以完美运行。

但是当它被 50-60 人使用时,它变得非常慢。

目前我正在使用 MySQL 和 PHP。

我正在调用.php具有MySQL连接代码的文件。从那里我正在获取 JSON 响应。

下面是我的代码:

这是我的 PHP 代码:

那么在这种情况下优化的最佳方法是什么?当超过 1000 名用户访问此应用时,该应用应具有响应能力并快速加载项目。

0 投票
0 回答
1619 浏览

php - php-cgi.exe 进程导致 IIS 7.5 中 CPU 使用率过高

我有一个 Windows 服务器,它具有高 CPU 使用率的随机峰值,在查看 ProcessExplorer 和 Windows 任务管理器时,似乎有大量 php-cgi.exe 进程同时运行,有时多达 6-8 个实例,所有每个占用大约 10-15% 的 CPU。有时它们非常糟糕,以至于导致服务器无响应。

在 FastCGI 设置中,我已将MaxInstances设置为 4,因此,同时运行的 php-cgi.exe 进程不应超过 4 个。因此,我想要一些关于如何将实例数限制为 4 的建议或指导。

附加说明:我还将instanceMaxRequests设置为 10000,并将PHP_FCGI_MAX_REQUESTS也设置为 10000 。

0 投票
1 回答
346 浏览

activemq - 如何提供 ActiveMQ 代理的可靠性?

我是否正确理解提供队列可靠性的最佳方式是主从代理网络(例如使用 ZooKeeper 的主从)?在消费者和生产者的故障转移设置中,我们设置了主节点的地址,当其中一个主节点离线时,代理网络的另一个主从节点从他的从节点那里获取这个主节点的消息,我们不会丢失消息。当破碎的master上线时,它会获得新的消费者和生产者并获得一些消息。我是正确的?

0 投票
2 回答
123 浏览

database - 选择哪个数据库来存储和读取统计信息?

选择哪个数据库来存储和读取事件或日志(即广告请求、印象等)?

每秒大约 30 个新条目。机会增长。因此需要灵活的缩放。

弹性搜索?涌入数据库?还有什么?

0 投票
1 回答
2209 浏览

ubuntu - Ubuntu - Nginx - 极高的 IO 写入

我有一个非常高流量的 Nginx 服务器,为一系列网站提供静态内容。我无法弄清楚为什么磁盘写入如此之高。

VMWare ESXi 6.0 主机(数据存储位于 RAID10 中的 4 个企业 SSD 上)运行 Ubuntu 14.04.3 LTS 虚拟机,具有 4 个内核和 16GB RAM。NGINX v 1.4.6


该实例目前正在处理大约 75,000 个连接(我知道这列出了所有连接,不仅仅是已连接,但 TIME_WAIT 连接仍然占用一个端口)


正在推动大约 50 MiB


而且写入率是通过屋顶!


这是我当前的 Nginx 配置,注释行是我尝试过的变体。


这些是我对 /etc/sysctl.conf 所做的修改



我不知道是什么导致了高写入率。我认为这是因为客户端缓冲区,但没有任何更改产生任何影响。我确保所有更新都已安装并在服务器上重新启动,但没有降低写入速率。任何帮助,将不胜感激!

0 投票
1 回答
10919 浏览

django - 高负载时具有最大请求限制块的 Gunicorn

我试图了解以下情况:

  • 我有一个前面有 nginx 的网站(使用 SSL,配置见下文)
  • 对 Django 应用程序的请求由 gunicorn 处理(0.18,配置见下文,由 supervisord 管理)
  • 当用户加载网站时,gunicorn 会处理 10 个请求(其他请求是由 nginx 提供的静态文件)——这些请求不是长时间运行的请求
  • gunicorn 被配置为每个工作人员最多接受 1000 个请求,直到工作人员重生
  • 大约 450 人能够在短时间内(1-2 分钟)加载页面
  • 之后gunicorn以某种方式阻塞并且不再处理任何连接,结果是nginxGateway Timeout在一段时间后响应

我想工人的重新启动并没有真正发生,或者机制被负载阻塞了?我想了解解决此问题的过程。

谁能解释这里发生了什么?非常感谢!

PS:我绑定使用gunicorn 18.0,目前无法使用较新的版本。

这是我使用的配置。

nginx:

gunicorn(通过 supervisord 启动):

0 投票
1 回答
460 浏览

logging - 实时日志解析

我想编写一个实时解析日志文件的工具。日志文件的写入速度非常快,例如每秒约 10k 行。我只需要获取每一行,然后执行一个正则表达式并将结果写入数据库。由于速度的原因,它不能通过完全读取文件来完成,所以我需要编写类似tail -f. 请告诉我,如何以及使用什么技术可以做到这一点?

PS对不起英语不好。

0 投票
2 回答
2357 浏览

spring-cloud - spring cloud zuul 配置

我正在对Spring Cloud应用程序进行负载测试。当并发用户数达到某个点时,我开始出现转发错误

下面是来自zuul的日志。根本原因是“无法获取执行信号量”

我的问题是如何配置 zuul 以避免这种转发错误。非常感谢您的帮助。

0 投票
3 回答
2155 浏览

javascript - 从不同的服务器/主机加载脚本,而不是我的

我正在寻找可以放置我的 js 脚本文件的地方。我正在创建类似于 Google Analitics 代码的 javascript 代码,因此它会加载一个 .js 文件,但我的服务器无法处理这么多请求。我正在考虑将我的脚本上传到另一台服务器。也许这是可能的和合法的?例如github?谷歌磁盘?谢谢。