问题标签 [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 投票
1 回答
484 浏览

caching - NoSQL + 分布式缓存在非常并发环境中的数据一致性

在幻灯片上,您可以看到非常粗略的预订系统架构。这是一个非常并发的环境,许多用户可能会同时尝试预订同一个酒店/房间。

在底部我们有 NoSQL 数据库,为了快速响应/请求,有分布式缓存和请求数据的应用程序。

这张幻灯片的想法是,当您使用 NoSQL + 分布式缓存时,您会遇到同步问题,这意味着数据一致性问题。您需要将分布式缓存与 NoSQL 数据库同步。

问题:除了 IMDG 之外,这种情况下已经存在哪些解决方案/技术?这可能是框架或/和最佳实践。是否有任何特定的分布式缓存可以解决这个问题?

问题 2[更新]:我们写入 NoSQL 数据库而不是缓存的原因是什么?那是交易,节点失败的可能性还是其他什么?

PS这不是我的幻灯片,作者声称这是 IMDG 的一个很好的用例。

在此处输入图像描述

0 投票
1 回答
175 浏览

php - 将 PHP 与全栈框架一起用于高负载项目是一个坏主意吗?

我知道 PHP 代码被编译为字节码并在每次运行时重新执行(即在每个页面请求上)。所以引擎应该在每个请求上重新定义所有使用的类、函数、变量等。

当使用像 Laravel 或 CakePHP 这样的全栈框架时,这也意味着在每个请求上都会一次又一次地完成相同的引导工作,比如解析配置文件、注册路由、自动加载类等。

这似乎是处理此类事情的非常不理想的方式。甚至缓存,无论是 OPcache 还是框架缓存系统,都没有足够的帮助,因为仍然需要执行脚本。

另一方面,基于 NodeJS 或 Ruby 等引擎的应用程序在启动期间只编译和引导一次。所以我想他们应该比 PHP 有更好的可扩展性。

但是 PHP 如此流行,甚至 Facebook 也使用它。所以我想知道,对于一个可能会承受重负载的网站来说,什么是正确的选择?出于这种目的使用带有全栈框架的 PHP 是一个坏主意吗?

0 投票
1 回答
142 浏览

php - 如何使用 PHP 在 Highload 上增加 Mysql 整数字段

我遇到了以下问题:当我尝试增加 mysql 表的一列时,值在高流量负载时不同步。

该任务分为两件事,增加列并将新行添加到另一个表。所以如果我添加 100 行,计数器应该保持在 100。

在高负载(例如 100 请求/秒)时,计数器出现问题,我在计数器值上得到 80,但添加了 120 行。

我认为问题在于某些请求的处理速度比其他请求更快,并且可能会覆盖这些值。希望有人可以帮助我指出正确的方向,或者对如何解决这个问题提出建议。

最好的,尼尔斯

0 投票
1 回答
9609 浏览

python - uWSGI python高负载配置

我们有一个 32 核的大型 EC2 实例,目前运行 Nginx、Tornado 和 Redis,平均每秒处理 5K 请求。一切似乎都运行良好,但 CPU 负载已经达到 70%,我们必须支持更多请求。其中一个想法是用 uWSGI 替换 Tornado,因为我们并没有真正使用 Tornado 的异步特性。

我们的应用程序由一个函数组成,它接收一个 JSON(~=4KB),做一些阻塞但非常快的东西(Redis)并返回 JSON。

  • 将 HTTP 请求代理到 Tornado 实例之一 (Nginx)
  • 解析 HTTP 请求 (Tornado)
  • 读取 POST 正文字符串(字符串化 JSON)并将其转换为 python 字典(Tornado)
  • 从位于同一台机器上的 Redis(阻塞)中取出数据(py-redis 和hiredis)
  • 处理数据(python3.4)
  • 在同一台机器上更新 Redis (py-redis 和hiredis)
  • 为响应准备字符串化 JSON (python3.4)
  • 向代理发送响应 (Tornado)
  • 向客户端发送响应(Nginx)

我们认为速度的提高将来自 uwsgi 协议,我们可以将 Nginx 安装在单独的服务器上,并使用 uwsgi 协议将所有请求代理到 uWSGI。但是在尝试了所有可能的配置并更改了操作系统参数之后,即使在当前负载下,我们仍然无法让它工作。大多数时候 nginx 日志包含 499 和 502 错误。在某些配置中,它只是停止接收新请求,就像它达到了某些操作系统限制一样。

正如我所说,我们有 32 个内核、60GB 可用内存和非常快的网络。我们不做繁重的事情,只做非常快速的阻塞操作。在这种情况下,最好的策略是什么?进程、线程、异步?应该设置哪些操作系统参数?

目前的配置是:

Nginx 配置:

操作系统配置:

我知道限制太高了,开始尝试每一个可能的值。

更新

我最终得到以下配置:

0 投票
1 回答
165 浏览

java - Fast tree evaluating

I have an evaluating tree class. Each node has children in a strict order. A server has a list of such trees.

When a client successfully connects to the server, it sends a lot of different HashMaps to a selected tree for computation. Typical HashMaps have pairs: [Variable string name, Variable int value].

Each TreeNode has a complex condition, which can read variables and has operations such as AND, OR, XOR, comparing with other variables or numbers. Each TreeNode also has statements, which can read/write variables and put new variables to HashMaps, which can subsequently be read/written in another TreeNode.

Here is a simplified structure of the trees:

My code currently performs about 200000 iterations/sec on an Intel i7 u3517 for a tree with 100 nodes and an input HashMap with 10 variables. How can I speed it up?

0 投票
0 回答
611 浏览

java - 偶尔的异常 org.hibernate.QueryException:无法解析属性

问题: 有时在我们的高负载下的 Web 应用程序中,当不同线程(在同一毫秒内)同时有两个 Hibernate 查询时,我们有两个异常(在两个线程中):“ org.hibernate.QueryException: could not resolve property ” on不同的实体和不同的属性。看起来两个查询出于某种原因交换了它们的属性映射,因此AbstractPropertyMapping类在其他查询实体的映射中找不到所需的属性并引发QueryException。每个实体仅在一个线程中使用。

环境:

  • 阿帕奇雄猫 7
  • 春天 4.0.6
  • 休眠 4.3.6.Final

配置:

第一个线程中的异常:

第二个线程中的异常:

源代码:

如何防止此异常?先感谢您。

0 投票
2 回答
177 浏览

javascript - 如何使用一种 get 方法克隆标记对象?

如何在一页中使用 svg 图像数据制作克隆标签对象。没有很多获取服务器的方法。目标页面示例

此示例获取 graph.svg,其中包含对 graph.svg 的许多获取请求。第一个请求显示结果 200,所有以下显示结果 304,但我需要没有以下一次。

我找到了 attr 声明,但是下一个代码在 #tg1 中的 attr 数据中不起作用。

使用数据 attr,tg1 发送以下获取请求。

我怎么能在 html 中做到这一点,wo js。是否可以通过相对 uri ~like xpath 从当前页面接收数据。

graph.svg 是自渲染图像。它可以在 div 中的影子根(现在不是变体)中工作。如果可以是一种方法 - 使用 JS,我如何将 XMLHttpRequest 结果放入标记对象中的文档中?

使用 document.querySelector("...") 等元素进行构造。contentWindow/contentDocument/document/window/innerHTML = ... 没有用。

如果 js - 需要纯 js wo jquery 和其他框架中的解决方案。火狐/铬。

0 投票
1 回答
126 浏览

ruby-on-rails - 具有后台架构的高负载 Rails 服务器

这是我的任务。每隔一个后台任务应该根据一些数据生成 json。此操作不是 CPU 密集型(主要是网络),它会生成 JSON 内容(5-10KB)。操作大约需要 200 毫秒。

此外,我有大约 1000 个客户每隔几秒钟就要求此内容一次。假设它大约是 200 个请求/秒。

服务器应该只输出当前的实际 json。

目前,我已经让 rails 4+nginx+passenger+debian 服务器在做与这项工作相关的其他工作。

作为一名学生,我希望以最具成本效益的方式制作我的服务器,并能够通过以下方式轻松扩展:

  1. 添加更多后台程序作业,生成更多 json
  2. 将请求数量增加到每秒 10 000 个

目前我有带有 2 个 CPU 核心的 linode 2048 ssd。我的问题是:

  1. 我应该为我的后台任务使用什么 gem/解决方案(目前是用 ruby​​ 编写的)
  2. 如何有效地存储实际的 json 并将其从后台程序传递到 rails/nginx。
  3. 如何使服务 json 尽可能快。
0 投票
0 回答
111 浏览

activemq - 我可以在没有妖魔化的情况下管理 ActiveMQ 工作人员吗?

我在 Gearman、ZeroMQ 和 RabbitMQ 中查找有关工作人员的信息,我发现最佳实践是使用像 Supervisor 之类的东西。我用谷歌搜索 ActiveMQ,但找不到有关工作人员管理的信息。是一样的,还是ActiveMQ可以自己启动、杀死、重启和增加worker?

0 投票
1 回答
878 浏览

elasticsearch - Logstash/Elasticsearch/Kibana 资源规划

如何根据负载计划资源(我怀疑是 elasticsearch 实例):

对于负载,我的意思是 ≈500K 事件/分钟,每个包含 8-10 个字段。

我应该转动哪些配置旋钮?我是这个堆栈的新手。