标签: throughput

ElasticSearch - 高索引吞吐量

我正在对ElasticSearch进行基准测试,以实现非常高的索引吞吐量目的.

我目前的目标是能够在几小时内索引30亿(3,000,000,000)个文档.为此,我目前有3台Windows服务器机器,每台机器有16GB RAM和8个处理器.正在插入的文档具有非常简单的映射,仅包含少数非分析的数字字段(_all已禁用).

我能够使用这个相对适中的装备每秒达到大约120,000个索引请求(使用大桌面进行监控),我相信可以进一步提高吞吐量.我正在使用一些.net NEST客户端来发送索引批量请求,批量处理1500个索引操作.

不幸的是,每秒120k请求的吞吐量不会持续很长时间,并且速率逐渐降低,在几个小时后降至~15k.

监控机器显示cpu不是瓶颈.但是,所有机器上的物理磁盘(而不是SSD)空闲时间似乎都在下降,平均闲置率低于15%.

设置refresh_interval为60s,而不是300s,最后是15m,似乎没什么帮助.在单个分片中监视单个translog,显示translog每30分钟刷新一次,然后达到200MB.

我尝试过使用两种分片策略:

  1. 1个索引,有60个分片(没有副本).
  2. 3个索引,每个20个分片(没有副本).

这两种尝试都会产生相当类似的体验,我认为这是有意义的,因为它是相同数量的分片.

看一下这些片段,我可以看到大多数分片都有~30个已提交的片段,以及相似数量的可搜索片段.细分市场规模各不相同 有一段时间,尝试使用max_num_segments = 1来优化索引,在完成之后似乎有所帮助(花了很长时间).

在任何时候,从一开始就开始整个摄取过程,在删除使用过的索引并创建新索引之后 - 导致相同的行为.最初的高指数吞吐量,但逐渐减少,早在达到30亿文件的目标之前.此时的索引大小约为120GB.

我正在使用ElasticSearch 1.4版本.Xms和Xmx配置为8192MB,可用内存的50%.索引缓冲区设置为30%.

我的问题如下:

  1. 假设磁盘目前是这个装备的瓶颈,这种逐渐增加磁盘利用率的现象是正常的吗?如果没有,可以做些什么来否定这些影响呢?
  2. 我是否可以通过微调来提高索引吞吐量?我是不是该?或者我应该向外扩展.

throughput elasticsearch

37
推荐指数
1
解决办法
2万
查看次数

延迟,带宽和吞吐量之间有什么区别?

我正在努力在延迟,带宽吞吐量之间划清界限.

有人可以用简单的术语和简单的例子来解释我吗?

performance latency bandwidth throughput

34
推荐指数
2
解决办法
2万
查看次数

IOPS与吞吐量相对应

  1. 大数据存储中IOPS和吞吐量有什么区别?
  2. 文件大小是否会影响IOPS?为什么/为什么不呢?

storage throughput

21
推荐指数
4
解决办法
2万
查看次数

Linux上的低延迟串行通信

我正在Linux上通过串口实现协议.该协议基于请求应答方案,因此吞吐量受到将数据包发送到设备并获得答案所需的时间的限制.这些设备大多是基于arm的,运行Linux> = 3.0.我遇到了麻烦,将往返时间减少到10ms以下(115200波特,8个数据位,无奇偶校验,每个消息7个字节).

什么IO接口会给我最低的延迟:使用ioctl手动选择,轮询,epoll或轮询?阻塞或非阻塞IO是否会影响延迟?

我尝试使用setserial设置low_latency标志.但它似乎没有效果.

还有其他我可以尝试减少延迟的事情吗?由于我控制所有设备,甚至可以修补内核,但它首选不要.

----编辑----

串口控制器使用的是16550A.

c++ linux serial-port throughput low-latency

16
推荐指数
3
解决办法
2万
查看次数

为什么Wi-Fi拥有比蓝牙更多的带宽?

在研究潜在应用的无线通信协议时,我在维基百科上看到了这个页面,其中列出了蓝牙和802.11网络的吞吐率:http://en.wikipedia.org/wiki/List_of_device_bit_rates

以下是链接中的相关选择:

  • 1 Mbps - 蓝牙1.1
  • 3 Mbps - 蓝牙2.0 + EDR
  • 24 Mbps - 蓝牙3.0,蓝牙4.0
  • 54 Mbps - 802.11a
  • 600 Mbps - 802.11n

与Wi-Fi标准相比,为什么蓝牙的吞吐量如此之小?

是否仅仅因为管理机构设定的标准有意设定较低的数据传输速率,以便使硬件成本保持在较低水平?

我们是否有可能获得带宽为802.11a或802.11n的"蓝牙5",或者是否有一些故意的设计决策导致低传输速率(例如牺牲速度以支持低功耗)?

编辑:要清楚,我知道列出的数据速率是理论上的最大值,并不能反映真实世界的性能.

wireless bluetooth bandwidth wifi throughput

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

HDFS中的高吞吐量与低延迟

我试图用我自己的话来定义HDFS中的高吞吐量和低延迟意味着什么,并提出了以下定义:

HDFS经过优化,可以更快地访问批量数据集(高吞吐量),而不是该数据集中的特定记录(低延迟)

是否有意义?:)

谢谢!

hadoop throughput hdfs low-latency

13
推荐指数
1
解决办法
2万
查看次数

延迟和响应时间有什么区别?

我开始阅读著名的 Martin Fowler 书(企业应用程序架构模式)

我不得不提一下,我正在阅读翻译成我的母语的书,所以这可能是我误解的一个原因。

我找到了他们的定义(回译成英文):

响应时间- 处理一些外部请求的
时间 延迟- 获得任何响应之前的最短时间。

对我来说也是一样。你能强调一下区别吗?

performance latency throughput low-latency

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

BLE外设吞吐量限制

我们正在开发一种可与iPad配合使用的BLE传感器外设,它需要使用TI CC2541 BLE模块和自定义配置文件的BLE通知特性(无应答)的以下吞吐量数据:

每10ms一个20字节(GATT最大标准数据包),或者因为我们似乎每个连接间隔限制4个数据包,这相当于每40ms一个连接间隔.所需吞吐量为每秒2,000字节,TI网站建议将CC2541 BLE解决方案用于需要此级别数据吞吐量的多个传感器设备.

BLE模块的配置文件设置为最小和最大连接间隔分别为20ms和40ms,这应该足够了."Apple产品的蓝牙配件设计指南"文档表明,我们设置的最小和最大连接间隔如上所述是正确的.我们在新的Mac Mini/Mac Book上使用适用于iOS 6的最新iPad和Apple工具.

通过iPad上的简单测试程序,我们可以使链接能够以20ms的间隔向BLE外设发送20字节数据包,但是一旦我们按需要将其降低到10ms,我们就开始丢失数据包或者获取损坏的数据包,我们有FIFO空中断关闭,因此我们可以更快地处理向BLE模块FIFO的发送,我们使用最大波特率230400将20字节数据包从微处理器发送到BLE TX FIFO.

我们意识到我们处于BLE转移限制的最高端,并且是可能的.任何人都可以建议使用带有最新iPad的TI CC2541 BLE芯片/模块是否有解决方案来实现每秒2000字节的吞吐量?

peripherals throughput ios bluetooth-lowenergy

9
推荐指数
2
解决办法
1万
查看次数

如何使用cachegrind输出来优化应用程序

我需要提高系统的吞吐量.

通常的优化周期已经完成,我们已经实现了1.5倍的更高吞吐量.

我现在开始怀疑是否可以利用cachegrind输出来提高系统的吞吐量.

有人能指点我如何开始吗?

据我所知,我们需要确保最常用的数据应保持足够小,以便它保留在L1缓存中,下一组数据应该适合L2.

这是我正在采取的正确方向吗?

valgrind daemon throughput

8
推荐指数
1
解决办法
3908
查看次数

在Google App Engine云基础架构上实现Stack Exchange API兼容请求限制

我一直在为Stack Exchange编写Google Chrome扩展程序.这是一个简单的扩展,允许您跟踪您的声誉并获得Stack Exchange站点上的评论通知.

目前我遇到了一些我无法处理的问题.我的扩展程序使用Google App Engine作为后端向Stack Exchange API发出外部请求.对于单个站点上的新注释,扩展中的每个单个客户端请求都会导致对api端点的大量请求,即使对于非剪切用户也可以准备响应.平均用户至少有来自Stack Exchange网络的3个站点的帐户,有些已超过10个!

Stack Exchange API具有请求限制:
单个IP地址每天只能生成一定数量的API请求(10,000).
如果我在5秒内从单个IP地址发出超过30个请求,API将关闭我的请求.

很明显,所有请求应该被限制为每5秒30次,并且目前我已经基于具有memcached的分布式锁实现了请求限制逻辑.我正在使用memcached作为一个简单的锁管理器来协调GAE实例的活动并限制UrlFetch请求.
但我认为限制这样强大的基础设施每5秒发出不超过30个请求是一个很大的失败.这样的api请求率不允许我继续开发新的有趣和有用的功能,有一天它将完全停止正常工作.
现在我的应用程序有90个用户并且还在增长,我需要提出解决方案如何最大化请求率.

众所周知,App Engine通过不同IP的同一池创建外部UrlFetch请求.我的目标是编写请求限制功能,以确保符合api使用条款并利用GAE分布式功能.

所以我的问题是如何在遵守api使用条款和利用GAE分布式功能的同时提供最大的实际API吞吐量.

建议使用另一个平台/主机/代理在我看来是没用的.

google-app-engine throttling rate-limiting throughput google-chrome-extension

8
推荐指数
1
解决办法
952
查看次数