1、环境申请搭建,压测机器的申请;
2、压测场景设计和思考;
3、压测脚本的编写和修改;
4、压测开始,调试,开始正式压测;
5、压测结果分析,定位问题,重新压测;
环境:
应用机器,mock机器,memcache机器,数据库服务器,客户端机器(由于公司有性能平台这里就没考虑),涉及到软件的安装,注意环境变量!!
涉及到的修改 应用的需要的环境变量,/etc/hosts文件,
-XX:PermSize=512m 持久代
-Djava.rmi.server.hostname=111.111.111.111 jmx配置的相关,jmx是java自带的一些扩展,可以用来监控jvm情况
OOM -- Out of Memory,内存溢出,之前碰到这个问题,是由于 PermSize 过小导致的 ,mock服务加载mock模板是服务启动时,把所有的mock模板加载到内存中,
-
数据库参数调整
root@127.0.0.1 : (none) 11:50:32> show variables like 'innodb_buffer_pool_size';
+-------------------------+------------+
| Variable_name | Value |
+-------------------------+------------+
| innodb_buffer_pool_size | 4294967296 |
+-------------------------+------------+
1 row in set (0.00 sec)
由于192.168.xxx.xxx挂载的数据文件磁盘为非SSD磁盘,磁盘IO性能比较差,而目前主机的系统总共内存为189GB。 innodb_buffer_pool_size从4G调整80GB (一般innodb_buffer_pool_size配置为主机内存的70%~80%)。
/etc/my.cnf (修改保存然后重启数据库)
innodb_buffer_pool_size=80G
service mysqld stop #停
service mysqld start #起
mysql -uroot -h127.0.0.1 #检查修改已经生效
root@127.0.0.1 : (none) 12:42:21> show variables like 'innodb_buffer_pool_size';
+-------------------------+-------------+
| Variable_name | Value |
+-------------------------+-------------+
| innodb_buffer_pool_size | 85899345920 |
+-------------------------+-------------+
1 row in set (0.00 sec)
-
系统最大文件句柄数调整为13万:
/etc/security/limits.conf
* soft nofile 130000
* hard nofile 130000
如果系统登录用户默认shell是bash shell,需要使用下面命令实现:
ulimit -n 130000