标签: performance-testing

性能调优PostgreSQL

请记住,我是sql/databases世界的新手.

我每秒插入/更新数千个对象.这些对象以多个第二间隔被主动查询.

我应该做些什么基本的事情来调整我的(postgres)数据库?

sql postgresql indexing performance-testing

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

访问日志重放进行负载测试?Jmeter陷阱和竞争对手

上下文

我们希望使用"重播"Web服务器访问日志来生成负载测试.我想起了JMeter,因为我最近阅读了关于在云中使用jmeter的博客文章(例如,启动了一些Amazon EC2实例来生成负载)

多年来我听说过JMeter重播访问日志的能力,但在审查这个功能时,我发现了以下内容.

访问日志采样器

  • 作用:

    • 重新创建会话,即处理jsessionId令牌(认为它试图通过IP地址估计会话);
  • 才不是:

    • 处理POST数据(即使您可以配置apache/tomcat将后期数据写入访问日志,jmeter访问日志采样器只处理'常见'日志格式).

发布数据对于重新创建实际负载会有很长的路要走.

此外,该文档将访问日志采样器描述为"alpha代码",即使它已有8年历史.它似乎没有积极维护.(这比Gmail的测试版要长.)

HttpPerf

另一篇博客文章向我指出了httpperf工具.我已经开始阅读了它:

摘要

  • 从真实用户数据生成负载测试"脚本"的最佳方法是什么?
  • 最适合你的是什么?
  • 各种工具的优缺点?

performance jmeter load-testing performance-testing

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

算法的性能突然增加了~10倍

背景信息

我最近为我的班级提供了关于算法和数据结构的分类.该任务是实现一个解决方案,以找到随机生成的数组的最大子阵列.我们被要求实施强力算法和递归分治算法.

然后我们被要求分析运行时间,以查看蛮力算法的哪个问题大小将比递归解决方案更快.这是通过测量两种算法的运行时间(使用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

我的问题是:在"热身"之后,算法突然表现得更好的原因什么?

java algorithm performance-testing

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

PHP5-FPM随机开始消耗大量CPU

我遇到了一个非常奇怪的问题,我不知道如何进一步调试.我有一个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)

php performance nginx performance-testing

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

对于Working Set PerformanceCounter,负载测试的显示不超过4GB

我正在尝试为某些应用程序创建负载测试.而且我希望只为我的应用程序的进程获取内存使用情况.为此,我添加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

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

使用Google的PSI v5 API,Google.com和其他流量较大的网站可以获得"快速"排名吗?

在说"基于现场数据'页面缓慢'"时,使用90百分位而不是中位数分数,使得大量被贩运的网站(例如google.com)无法获得"快速"排名吗?这是由于每月流量在10M +范围内时会出现长尾?

上次我检查(2018年2月初),桌面google.com获得了100个灯塔合成分数,应该被解释为"几乎没有改进的余地",然而,该页面排名"慢",因为第90百分位FCP超过3秒.

使用此标准时,像nytimes.com这样的页面是否会被认为很快,甚至google.com的桌面页面根据现场数据排名很慢?

最近的例子(2019年2月14日) 在此输入图像描述

前例为FCP的尾部更长: 在此输入图像描述

performance performance-testing lighthouse chrome-ux-report pagespeed-insights

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

我们可以在Jmeter的单个测试计划中并行运行两个线程组吗?

我们可以通过在Jmeter中创建一个单独的测试计划来并行运行两个线程组吗?

例:

我必须在测试计划中添加2个测试用例,这些测试用例必须并行执行,我们可以将此测试计划与任何其他同时执行的测试计划结合起来

testing jmeter performance-testing

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

限制WebSockets的网络速度

我们正在WebSockets Web应用程序上进行性能测试.由于我们的应用程序在非洲使用,我们还需要在非常慢的连接速度下进行测试.

Chrome的网络限制功能非常适合HTTP流量(HTML,CSS,JS等文件),但它似乎并没有限制WebSocket流量.如果我们能以某种方式限制它,那将是很棒的.

performance google-chrome performance-testing websocket

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

如果速度太慢,如何使性能测试失败?

我希望我的测试失败,如果它运行慢于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]

performance performance-testing ios swift

12
推荐指数
2
解决办法
1080
查看次数

ArrayList和HashSet内存分配奇怪的测试结果

我受到了这个主题的启发:List和Set之间的性能和内存分配比较实际上运行了一些测试并测量ArrayList和之间的性能差异HashSet.

在上述主题中,最受欢迎的答案引起了很多关注(链接),他说:

对于相同数量的元素,HashSet比ArrayList消耗大约5.5倍的内存

ScalaMeter的帮助下,我想确保这一点.

我做了两个简单的测试,从添加10000100000元素都ArrayListHashSet.将初始大小设置为最大值不会更改结果.我用两种类型测试了这些集合:

  • Int (将连续数字0到100000)
  • String(使用Apache放置随机字符串RandomStringUtils)

该代码可以在我的仓库在这里.

并运行那些,给了我这样的结果:

  • X轴 - 尺寸 - >集合的大小
  • Y轴 - 值 - >使用的kB量

对于收藏品Int: 整数结果

对于持有String10号的藏品: 字符串结果大小为10

对于持有String50码的藏品: 字符串结果大小为50

问题:

在引用的答案中提到的理论发生了什么?这是假的吗?或者我的身边可能有些错误?

谢谢 :)!

@andrzej回答后 更新我再次更新了代码(和存储库).结果越来越好,但结果仍然不是5.5倍.我现在正在检查更多的东西.

java collections scala performance-testing scalameter

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