发表于: 2017-08-24 21:12:57

1 985


一.今天完成的主要事情

1.根据老大的提示,对项目性能低的原因进行排查

首先,老大说一般nginx不会是项目的瓶颈,让我查看web容器的日志(不是项目日志,是web容器记录请求信息的日志)

使用的jetty容器,之前没有增加容器日志,所以先增加jetty容器日志.查询jetty文档后通过在base目录下执行以下命令

增加后在start.d目录下生成一个新文件requestlog.ini,jetty的日志中默认是不记录请求时间的,所以要修改配置

然后,可以查看jetty处理每次请求所用的时间

再次测试一次,用200线程,发现一开始的200个请求的响应时间非常长,然后后续的响应时间都很短,以为问题解决,是jetty容器的问题

然后老大说jetty容器不会那么慢,肯定是项目代码有问题,于是我再次测试,发现这次无论是项目代码controller层还是jetty容器的响应时间都很快,如图

这是代码中的日志截图

这是jetty服务器的请求日志截图

虽然只截取了一部分,但是通过awk命令可以看出来所有的请求没有在200ms以上的

然后nginx服务器的日志显示还是很慢

最后老大说200线程有点多,我又换80线程试了一下,其他的日志信息基本都没变化,只有nginx的日志显示比较慢,所以基本上确定是服务器的硬件性能不够好,导致整体性能上不去.

通过这次排查,自己对jetty容器的各项配置以及性能调优时的步骤有了更加深入的理解,也是一个不小的收获

2.完成任务后的深度思考

      1.    为什么要使用memcache?memcashe有什么作用?

      Memcache是一套分布式的高速缓存系统,被许多网站使用以提升网站的访问速度,尤其对于一些大型的,需要频繁访问数据库的网站访问速度提示效果十分显著. 自己的理解就是因为关系型数据库将数据存放在磁盘上,如果有大量的频繁的读取数据的操作,那么就会有非常多的访问磁盘的操作,而访问磁盘的操作速度比较慢,这样就会影响整个项目的性能,而且如果并发量比较大的话,许多请求同时访问数据库,会对数据库带来很大的负担,甚至有可能压垮数据库.所以使用memcache将一些常用的,频繁访问的数据存放在内存中,需要读取时从内存中读取,因为访问内存的时间要远小于访问数据库的时间,所以使用memcache比起直接访问数据库速度更快.

所以memcache的作用一是提高了需要频繁读取数据库中数据的网站的访问速度,二是保护了数据库,防止数据库被大量的并发请求压垮,三是提高了支持请求的并发量.

       2.    什么是负载均衡,为什么要做负载均衡?

       负载均衡就是当请求和并发非常高,超出了一台服务器的极限时,再增加几台服务器来分担请求.说通俗一些就是一个人的能力有限,如果任务太多会压垮这个人,为了避免这种情况的出现,就再找几个人和他一起完成任务,这几个人组合在一起就是负载均衡.做负载均衡的好处非常明显,可以降低单台服务器的负载,增加支持的并发数量.

        3.    nginx如何实现负载均衡?

        Nginx通过将接收到的请求按照事先的配置转发至不同的服务器来实现负载均衡.我们可以根据实际服务器的情况配置不同的负载均衡策略,比如可以让nginx服务器来处理静态页面,将动态请求转发至后方服务器中.

3.梳理以下任务七

自己的理解是先去申请第三方接口

然后用第三方的demo测试接口,接着将该功能添加到报名系统中

期间要注意账号密码要写在spring配置文件中

4.

二.明天的计划

1.在task2的基础上搭建环境

2.测试第三方API接口

3.尝试将第三方API接口集成到报名系统中

三.遇到的问题

感觉对整体的任务流程还不是特别明确,明天再尝试深入理解

四.收获

以上

五.是否有延期风险

任务七暂时还没有,明天拆禅道


PS:今天提交了任务,因为涉及到两台服务器的负载均衡,所以成果展示中提交的是一个测试域名,师兄如果要看的话可以在本地hosts文件中添加以下配置:

代码已经上传至学院svn以及github上,压测报告在昨天的日报中已经展示出来


返回列表 返回列表
评论

    分享到