请记住,我是sql/databases世界的新手.
我每秒插入/更新数千个对象.这些对象以多个第二间隔被主动查询.
我应该做些什么基本的事情来调整我的(postgres)数据库?
上下文
我们希望使用"重播"Web服务器访问日志来生成负载测试.我想起了JMeter,因为我最近阅读了关于在云中使用jmeter的博客文章(例如,启动了一些Amazon EC2实例来生成负载)
多年来我听说过JMeter重播访问日志的能力,但在审查这个功能时,我发现了以下内容.
作用:
jsessionId令牌(认为它试图通过IP地址估计会话);才不是:
发布数据对于重新创建实际负载会有很长的路要走.
此外,该文档将访问日志采样器描述为"alpha代码",即使它已有8年历史.它似乎没有积极维护.(这比Gmail的测试版要长.)
HttpPerf
另一篇博客文章向我指出了httpperf工具.我已经开始阅读了它:
摘要
背景信息
我最近为我的班级提供了关于算法和数据结构的分类.该任务是实现一个解决方案,以找到随机生成的数组的最大子阵列.我们被要求实施强力算法和递归分治算法.
然后我们被要求分析运行时间,以查看蛮力算法的哪个问题大小将比递归解决方案更快.这是通过测量两种算法的运行时间(使用System.nanoTime()测量)来增加问题大小来完成的.
然而,确定这比我预期的要复杂一点.
好奇心
如果我通过运行问题大小为5000,超过10次的两种算法开始,递归算法的运行时间从一次运行到下一次运行下降大约10倍(从~1800μS执行,到~200μS执行)并且它在剩余的迭代中保持更快.有关示例,请参见下图

第2和第3列只是为了验证两种算法都返回正确的最大子数组
这是在OS X 10.7.3上使用Java 1.6.0_29测试的 - 在运行Windows 7和Java 1.6(确切版本号未知)的PC上执行时结果相同.
该程序的源代码可以在这里找到:https://gist.github.com/2274983
我的问题是:在"热身"之后,算法突然表现得更好的原因是什么?
我遇到了一个非常奇怪的问题,我不知道如何进一步调试.我有一个NGINX + PHP5-FPM + APC Amazon Ubuntu实例,并且安装了一个网站,这是一个复杂的PHP框架.在尝试调试问题时,我减少了流程:包含了很多大类,创建了主对象,启动了会话,从memcached中检索了配置数组,从memcached中检索了XML文件,HTML包含模板,输出发送到客户端.
然后我使用http_load工具将网站置于每秒20个请求的负载下:http_load -timeout 10 -rate 20 -fetches 10000 ./urls.txt
接下来发生的事情很奇怪.top显示了一堆产生了几个CPU的php5-fpm进程,一切运行顺畅,如下所示:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28440 www-data 20 0 67352 10m 5372 S 4.3 1.8 0:20.33 php5-fpm
28431 www-data 20 0 67608 10m 5304 S 3.3 1.8 0:16.77 php5-fpm
28444 www-data 20 0 67352 10m 5372 S 3.3 1.8 0:17.17 php5-fpm
28445 www-data 20 0 67352 10m 5372 S 3.0 1.8 0:16.83 …Run Code Online (Sandbox Code Playgroud) 我正在尝试为某些应用程序创建负载测试.而且我希望只为我的应用程序的进程获取内存使用情况.为此,我添加Process / Working Set到我的计数器中
问题是以Working Set PerformanceCounter字节为单位读取值并且不计算超过4294967296等于4 GB的值
但我的应用程序"以64位模式运行"使用超过4 GB的内存
从TaskManager可以清楚地看到它需要大约6GB,但这个值不会出现在负载测试图中.
那么如何创建自定义的PerformanceCounter来完全像Process/Working Set一个但使用Kilobytes而不是字节我可能得到真正的值.或者任何其他解决方案,使我能够计算我的应用程序在负载测试中使用内存的程度.
c# performance performancecounter load-testing performance-testing
在说"基于现场数据'页面缓慢'"时,使用90百分位而不是中位数分数,使得大量被贩运的网站(例如google.com)无法获得"快速"排名吗?这是由于每月流量在10M +范围内时会出现长尾?
上次我检查(2018年2月初),桌面google.com获得了100个灯塔合成分数,应该被解释为"几乎没有改进的余地",然而,该页面排名"慢",因为第90百分位FCP超过3秒.
使用此标准时,像nytimes.com这样的页面是否会被认为很快,甚至google.com的桌面页面根据现场数据排名很慢?
performance performance-testing lighthouse chrome-ux-report pagespeed-insights
我们可以通过在Jmeter中创建一个单独的测试计划来并行运行两个线程组吗?
例:
我必须在测试计划中添加2个测试用例,这些测试用例必须并行执行,我们可以将此测试计划与任何其他同时执行的测试计划结合起来
我们正在WebSockets Web应用程序上进行性能测试.由于我们的应用程序在非洲使用,我们还需要在非常慢的连接速度下进行测试.
Chrome的网络限制功能非常适合HTTP流量(HTML,CSS,JS等文件),但它似乎并没有限制WebSocket流量.如果我们能以某种方式限制它,那将是很棒的.
我希望我的测试失败,如果它运行慢于0.5秒,但平均时间只是打印在控制台中,我找不到访问它的方法.有没有办法访问这些数据?
码
//Measures the time it takes to parse the participant codes from the first 100 events in our test data.
func testParticipantCodeParsingPerformance()
{
var increment = 0
self.measureBlock
{
increment = 0
while increment < 100
{
Parser.parseParticipantCode(self.fields[increment], hostCodes: MasterCalendarArray.getHostCodeArray()[increment])
increment++
}
}
print("Events measured: \(increment)")
}
Run Code Online (Sandbox Code Playgroud)
测试数据
[Tests.ParserTest testParticipantCodeParsingPerformance]'测量[时间,秒]平均值:0.203,相对标准偏差:19.951%,值:[0.186405,0.182292,0.179966,0.177797,0.175820,0.205763,0.315636,0.223014,0.200362,0.178165]
我受到了这个主题的启发:List和Set之间的性能和内存分配比较实际上运行了一些测试并测量ArrayList和之间的性能差异HashSet.
在上述主题中,最受欢迎的答案引起了很多关注(链接),他说:
对于相同数量的元素,HashSet比ArrayList消耗大约5.5倍的内存
在ScalaMeter的帮助下,我想确保这一点.
我做了两个简单的测试,从添加10000到100000元素都ArrayList和HashSet.将初始大小设置为最大值不会更改结果.我用两种类型测试了这些集合:
Int (将连续数字0到100000)String(使用Apache放置随机字符串RandomStringUtils)该代码可以在我的仓库在这里.
并运行那些,给了我这样的结果:
问题:
在引用的答案中提到的理论发生了什么?这是假的吗?或者我的身边可能有些错误?
谢谢 :)!
@andrzej回答后 更新我再次更新了代码(和存储库).结果越来越好,但结果仍然不是5.5倍.我现在正在检查更多的东西.
performance ×6
java ×2
jmeter ×2
load-testing ×2
algorithm ×1
c# ×1
collections ×1
indexing ×1
ios ×1
lighthouse ×1
nginx ×1
php ×1
postgresql ×1
scala ×1
scalameter ×1
sql ×1
swift ×1
testing ×1
websocket ×1