- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用例,我使用 gocql 驱动程序连续将数据批量摄取到 Scylla 中,在繁重的写入测试期间,我观察到 scyllas 写入响应延迟随着时间的推移而增加,有时它会导致 scylla 节点重新启动,如果是 cassandra延迟时间是恒定的。我只想知道这个用例的正确配置,这样我就可以在整个时间内实现恒定的延迟。
用于 scylla 集群的配置
writer process 的详细信息基本上它是一个 kafka 消费者。
消费者的流量是
1- 从 kafka 读取 500 条消息
2- 500 个 worker (goroutine)开始将它分批写入 scylla(cassandra)(单批包含与单个分区相关的数据)每批包含平均 3k 条记录(最大值 => 20k)。(键空间的复制因子为 1)
3-更新计数器表 scylla 中的批处理状态。
4-将这 500 条消息提交给 kafka
5 - 返回第 1 步
soo,基本上在测试中我使用了 3 个消费者。 scylla 无法应对 kafka 的注入(inject)速度,而 cassandra 与注入(inject)速度相匹配。
分享了 load test 的 grafana dashborad,如果还有什么需要请告诉我。
[![注入(inject)与排出率][1]][1]
[![Scylla 内存仪表板][2]][2]
[![scyllaIOqueue][3]][3]
[![ScyllaIo][4]][4]
[![scyllaDiskDetails][5]][5]
[![延迟][6]][6]
[![加载][7]][7]
smp 16
cpuset 0-15
memory 80G
iops
cat /etc/scylla.d/io_properties.yaml
[root@ip /]# cat /etc/scylla.d/io_properties.yaml
disks:
- mountpoint: /var/lib/scylla
read_iops: 265
read_bandwidth: 99796024
write_iops: 1177
write_bandwidth: 130168192
Is there any other config which I missed by which I can achieve constant write latency.
[1]: /image/o0yQc.png
[2]: /image/i0RhS.png
[3]: /image/sA4WY.png
[4]: /image/5QAob.png
[5]: /image/6U5UM.png
[6]: /image/DG2my.png
[7]: /image/TOtuQ.png
saw this logs in scylla container
WARN 2020-02-05 11:07:54,409 [shard 12] seastar_memory - oversized allocation: 1081344 bytes. This is non-fatal, but could lead to latency and/or fragmentation issues. Please report: at 0x2cf31dd
0x2a1d0c4
0x2a21e8b
0x103d7d2
0x103e298
0x10070c0
0x100cd14
0x10289b8
0x1028057
0x1028f59
0x2a003ac
0x2a50491
0x2a5069f
0x2aba615
0x2acedac
0x2a330ed
/opt/scylladb/libreloc/libpthread.so.0+0x85a1
/opt/scylladb/libreloc/libc.so.6+0xfb302
最佳答案
您报告说“写入响应延迟会随着时间的推移而增加”,但没有解释您是如何衡量这一点的,或者它增加了多少。延迟是从 1 毫秒增加到 2 毫秒,还是从 1 毫秒增加到 500 毫秒? 意思是 延迟增加,或 尾部 延迟(例如,第 99 个百分位)增加?
其他响应提出的一些想法将主要解释尾部延迟的增加。但是在您所描述的批处理工作负载中,您通常不关心尾部延迟,而只关心获得合理(甚至不低)的平均延迟(在批处理工作负载中,更重要的衡量标准是吞吐量)。但是,如果您看到平均延迟持续增长并变得不合理,通常发生的情况是您客户的 并发正在增加,或者换句话说,它开始了太多的新写入,而没有等待先前的请求完成(参见 Little's Law)。您没有说您是如何进行“批量写入”的。您是在使用具有固定线程数的客户端,还是您的写入并发性会不受控制地增长?
当您的客户端正确地具有固定的并发性时,Scylla 仍然必须小心不要让客户端相信以前的工作已经完成,而实际上仍然有很多后台工作 - 我在 a blog bost a year ago 中解释了这个问题以及 Scylla 如何解决它.
当然,Scylla 总是有可能在这方面存在错误,因此如果您怀疑它,请在 Scylla 邮件列表或错误跟踪器上报告您的问题 - 并提供更多详细信息。
关于Scylladb : Scylla write latency increasing over the time for continuous batch write ingestion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59967884/
我正在执行 UPDATE .WRITE() 语句,并发现它显然只有在您像这样定义它时才有效: string sql = "UPDATE [dbo].[Table] SET [Column].WRITE
我在 Unix 系统上用 C 编程。我知道: write(fd,"ABCD",4); 比这样做更好: write(fd, "A", 1); write(fd, "B", 1); write(fd, "
func hash(s string) uint32 { h := fnv.New32a() h.Write([]byte(s)) return h.Sum32() } 对于这
在经典的 asp 页面中,有人告诉我您可以使用 vbscript 或 jscript。而 jscript 就是 javascript。 所以我不确定 Response.Write、Response.W
当 openssl 子进程尝试 write() 到本地目录时,我收到此错误。在调用 write() 之前连接已关闭。它没有与 ssl 连接,因为我什至无法从 nodejs 文档启动示例代码。 我错过了
最近我在试验netty。我遇到了以下问题: ctx.channel().write(new TextWebSocketFrame("hello")) 没有在客户端返回 hello,但是 ctx.cha
请解释以下内容: def feed(data): import os print "DATA LEN: %s" % len(data) f = open("copy", "w") f.
有什么区别debug.write 和 Trace.write ?每个应该什么时候使用? 最佳答案 在典型的发布构建配置中,Debug class 被禁用并且什么都不做。 Trace但是,仍然可以在发行
我只是想知道,就性能而言,哪个更好(我在 FileStream 中使用 StreamWriter): 多次调用 Stream.Write(): StreamWriter sw = new Stream
我发现自己写给 stringwriter,然后在函数末尾执行 resp.Write(sw.ToString())。这是不必要的吗?如果我多次使用 HttpResponse.Write,即使我的页面是
我正在尝试通过 JavaScript 文件从 electron 打开一个新窗口,它可以工作,并打开了新窗口,但我无法将 HTML/文本写入新文件。我收到那个错误: Cannot read proper
我们对 QIODevice::write 的一般行为和具体的 QTcpSocket 实现感到非常困惑。有一个 similar question已经,但答案并不令人满意。主要的混淆源于分别提到的 byt
我知道这听起来像是一个愚蠢的问题: write(*,*) 和 write(6,*) ?我在我研究所的 super 计算机上运行一个复杂的代码,它通过一个不同于 6 的单元号输出一个数据文件,显然编译的
我有一个结构体,它可以通过一系列复杂的方法调用转换为文本,其中包含大量 write!调用。此文本可以写入文件或调试日志。我正在决定是否使用 fmt::Write 或 io::Write .我不能真正使
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
In the C standard library, an output can't be followed by an input and vice versa. 对于Linux API,可以在re
我希望能够为一件事做 document.write。然后延迟半秒,然后再记录。写一些。你知道这是否可能吗?而且,如果是这样,怎么办?到目前为止,我已经尝试过了,但没有奏效: document.writ
为什么通过 onclick 属性调用的 write() 函数解析为 document.write() 并替换文档?有什么办法可以阻止这种情况发生吗? Write Function Alternat
我想创建一个包含多个“页面”的文本文件,并将每个页面的字节偏移量记录在一个单独的文件中。为此,我将字符串打印到主输出文件并使用 bytes_written += file.write(str) 计算字
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我是一名优秀的程序员,十分优秀!