测试结果,如图所示:
我们程序的逻辑是每请求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 = 每个线程调用请求的次数(备注目前上面的程序我是做循环跑的,所以暂时没用上,大家觉得如果需要用上的话可以改改上面的程序)
这个工具如果大家觉得还凑合用的话就尽管拿去用吧~