为什么做压力测试?
  如果在软件设计阶段都将这些问题元素都考虑进去,同时开发阶段严格执行。那么开发出些软件几乎不用做这个劳人伤神的压力测试。
  所以在软件设计阶段要考虑,灵活性,扩展性,可靠性与性能,还要考虑高可用与负载均衡。
  同时软件优化伴随开发,持续集成,持续测试,持续部署。
  在哪里做压力测试?
  有些软件需要封闭的环境测试,不能在共享资源的环境中做测试。所以你有必要做Vlan隔离,甚至独立的路由器与交换机在封闭网络中测试。
  什么时间做压力测试?
  任何时间都可能做压力测试,为什么我将“时间”重点提出呢?目前受地球自转影响,经常闰秒,你不的不考虑这个问题。
  压力测试过程参与人员?
  运维部门
  开发部门
  测试部门
  如何做压力测试?
  下面我们举一些例子,讲述压力测试方法,限于篇幅不可能面面俱到,我仅仅是给你提供思路。
  测试前你需要一些监控工具,事实监控服务器的资源变化。
  例如 Web 服务器压力测试,测试场景是 nginx :
  worker_processes  8;            处理器数
  worker_rlimit_nofile 65530;     允许多打开文件数
  worker_connections  4096;       大连接数数为
  keepalive_timeout  65;          开启复用连接
  gzip  on;                       压缩传输数据
  怎么测试呢?你要活得大化性能吗?还是相对性能?我们通常需要的是满足需求好的相对性能,而不是大化性能。为什么呢?因为要活得大化性能是要做出很多配置牺牲的,例如关闭日志,禁止访问时间等等。
  按照上面的配置你的测试用例应该是,每次并发4000 请求 8000~10000 次, 你不能并发8000 请求 4000 这样测试。很是很多人常常犯的错误,所以测试者需要连接系统的配置参数,不能盲目使用数字实验。
  上面我说过线程的开启时随着请求,逐渐增加的,所以首次发起测试数据是不准确的,通过pstree命令可以看到线程数量。等第三次以后线程逐渐增加到4096个,并且之前开启的TCP可以复用,这时测试的结果比较有说服力。