2014-8-5 23:14| 发布者: tianzc| 查看: 431| 评论: 0
测试结果,如图所示: 我们程序的逻辑是每请求1000次,打印一次; 上面的结果翻译的结果就是: 1----请求1000次,耗费时间为3727毫秒; 1----请求2000次,耗费时间为6253毫秒; 1----请求3000次,耗费时间为8713毫秒; 1----请求4000次,耗费时间为11028毫秒; 1----请求5000次,耗费时间为13340毫秒; … 依据上面的结果,我们可以做个预估:每秒可以承受的4000次请求;也就是说我们可以大大预估一天有3千万次请求数,这个程序都是可以应付对的; 但是上面的结论并没说明文件,考虑到并发用户的情况,好!那我们分1个并发,10个并发,100个并发,1000个并发,(我的并发是以线程来区分级别,估计大多数测试工具也是以这样的一种方式去区分,备注:线程并非同一时刻,据本人了解,线程的区分度大概纳秒级别的,还是在同一个进程里面去处理;而进程是可以利用上多核CPU的,举例:4个核的CPU,开4个进程是可以时刻并行的运行,也就是说这4个进程是同一时刻在跑。) 10线程并发: 也就是说10个并非,每秒执行9千+; 100个线程并非: 也就是说100并非,每秒执行1.5万次; 1000个并非: 已经挂掉了,也就是说这个小的后端程序能够承受的并非级别是100~1000之间(一台主机的情况,如果是集群的话,100万台服务器的话,相当于并发在1亿~10亿之间,如果按照业界传闻facebook的几十万台,Google级百万台,在还没考虑主机CPU、内存的这个测试结果是非常可观,目前主机是双核2G内存的主机); 测试方法就是:java -jar errlogClient.jar path url n c 各个参数的标识:path = 目标文件路径 ; url = 请求的地址 ; n = 线程总数 ; c = 每个线程调用请求的次数(备注目前上面的程序我是做循环跑的,所以暂时没用上,大家觉得如果需要用上的话可以改改上面的程序) 这个工具如果大家觉得还凑合用的话就尽管拿去用吧~ |