服务性能监控总结
最近工作中需要新写服务接口及定时任务,需要对服务的性能进行监控。并能通过最终的压测。第一次碰上这种情况,难免忐忑些。
未压测前,自己先对性能进行了些自测,下面是自己这几天总结的几点:
1.打印日志时间,记录程序运行的时间:
public class A {
private static Log logger = LogFactory.getLog(A.class);
@Test
public void test() throws Exception{
long start = System.currentTimeMillis();
for (int i = 0; i < 500000; i++) {
Thread.sleep(1);
logger.info("打印"+i+":"+start);
}
long end = System.currentTimeMillis();
logger.info("执行时间:"+ (end - start) / 1000 + "秒");
}
}
2.对程序中查询及更新的SQL进行监控,是否最优:
1)查询是否走索引,尽量避免全表扫描;
2)对未确定的结果集不能用in;
3) 业务高峰时期,数据库压力比较大时,执行SQL查看执行时间;
4)查看执行计划;
5)对已存在的表,最好事先在正式环境执行新写的查询语句,测试环境数据量小可能测试不出来(之前被坑过......)
3.对定时任务需要获取的配置信息有两种方式:
1) 数据库SQL配置,程序代码获取SQL配置信息并增加redis缓存。多用于程序开关等类似的情况;
2) 配置文件获取,服务器启动时加载,存储配置文件信息到服务器缓存中。多用于数据库用户名、密码等情况。
以上就是最近这几天自己对性能的自测总结,以后如果还有再补充完善。

浙公网安备 33010602011771号