我正在对web服务进行负载测试,其中请求的形式如下:
GET http://host/my/app/some-data
其中some-data是一个字符串,用作服务背后的逻辑的输入。现在我有一百万个带有some-data随机值的urls,现在我想尝试用这一百万个urls模拟负载。
GET http://host/my/app/some-data_1
GET http://host/my/app/some-data_2
...
GET http://host/my/app/some-data_1e6
我不知道如何做到这一点,也没有取得任何实质性进展的目标。我该怎么做呢?
Apache httpd多年来为我做得很好,在我一直在维护的遗留定制LAMP堆栈应用程序中非常稳定和高性能(阅读:试图逃离)
我的LAMP堆栈的日子现在已经屈指可数了,现在我要转移到多语的奇妙世界:
1) Scala REST framework on Jetty 8 (on the fence between Spray & Scalatra)
2) Load balancer/Static file server: Apache Httpd, Nginx, or ?
3) MySQL via ScalaQuery
4) Client-side: jQuery, Backbone,
我使用的是AWS m4 large (2vCPU,8Gib内存) AMI Linux os,nginx & php-fpm配置如下
nginx.conf
user nginx;
worker_processes 2;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
我已经将预生产服务器从SQL server 2012升级到SQL Server 2014 Sp1。
然而,在我们简短的手动测试中,我们发现了一些问题,新的基数估计器在少数查询上的性能显著下降。(即,在数据库兼容模式为110或(QUERYTRACEON 9481)的情况下运行相同的查询,并且相同的查询速度非常快)。
有没有一种(好的)方法可以从我们的高事务处理服务器上抓取查询,并在我们的Pre-Prod服务器上对它们进行整体测试,看看问题有多大,哪些查询会受到影响,这样我们就可以缓解它们?
谢谢,詹姆斯
对于API工作,我倾向于通过将http请求包装在Redis get / set函数上来缓存第三方API响应,例如:
import http from 'request-promise-native';
import redis from 'redis';
import bluebird from 'bluebird';
bluebird.promisifyAll(redis.RedisClient.prototype);
bluebird.promisifyAll(redis.Multi.prototype);
const redisClie