发表于: 2017-10-25 22:44:24
1 704
一.今日完成
1.测试使用memcached后高并发性能测试
(1)在service层组件中调用memcached方法
public List<User> selectAllUser() {
//获取用户信息
List<Long> longList = userDao.getUserIdList();
List<User> userList = new ArrayList<User>();
for (Long id : longList) {
if (memcached.get("user_" + id) != null) {
user = (User) memcached.get("user_"+id);
logger.info("这是从缓存中获取的");
} else {
user = userDao.select(id);
logger.info("这是从数据库中获取User:Id="+id);
memcached.set("user_"+id, user,new Date(1000 * 20));
userList.add(user);
}
}
return userList;
}
(2)web层controller类新建处理url请求的方法
//用户列表页面
@RequestMapping(value="/studentlist",method =RequestMethod.GET)
public String showStudent(Model model){
log.info("查询所有用户信息");
List<User> userList = userService.selectAllUser();
model.addAttribute("userList",userList);
return "studentlist";
}
(3)使用BadBoy录制脚本,配合JMeter进行多线程(100,1000,2000)压力测试,以下是测试结果:
在昨天的日报里,未使用memcached缓存技术的压测试验里,线程组设置为500时候,JMeter基本已经处于卡死瘫痪状态,而上面的结果显示即使线程组达到了1000,依旧得到较好的数据结果;考虑两组脚本中step数量有差异,但仍可以反应memcached的优势之处.
2.本来计划使用nginx加权均衡负载来进一步提高压测性能,但是由于服务器数量有限,而且对于阿里云提供负载均衡产品如何使用不甚熟悉,所以就没有实现.
3.囿于任务进度滞后的缘故,redis的使用计划放在后续任务中实现.
二.明日计划
开始做任务7
三.遇到问题
在服务器端安装redis,默认绑定"127.0.01"/"localhost",即通过本地访问IP对数据库进行访问,实际开发和生产过程中,多台服务器集群协作,是否需要开放其他IP地址或者采取其他技术解决不同服务器上数据库访问问题.
四.收获
以上.
禅道:http://task.ptteng.com/zentao/task-view-10389.html
提交任务6,开始任务7.
评论