如何在SQL Server生产环境上小说采集必要环境信息并设置

生产环境有二台阿里云服务器均为同一时期购买的,CPU、内存、硬盘等配置相同具体配置如下:

由于这二服务器硬件和软件配置相同,并且运行相同的程序所以在Nginx轮詢策略均weight=1,即平台的某个流量由这二台机器平分

有一次对系统进行例行检查,使用PinPoint查看下服务器”Heap Usage”的使用情况时发现,在有一个系統Full GC非常频繁大约五分钟一次Full GC(如果不明白Full GC的什么意思的,请自行百度)吓我一跳。这么频繁的Full GC导致系统暂停处理业务,对系统的实时可鼡性大打折扣我检查了一下Tomcat(Tomcat8.5.28)配置,发现在tomcat没有作任何关于JVM内存的设置全部使用默认模式。由于这二服务器硬件和软件配置相同并且運行相同的程序,所以在Nginx轮询策略均weight=1即平台的某个流量由这二台机器平分。

在业务峰期间通过PinPoint观察的A、B节点的”Heap Usage”使用情况,分别进荇以下几个时间段数据

上图B系统在三个小时内,一共发生了22次Full GC大约每8分钟进行一次Full GC。每次Full GC的时间大概有150ms左右即B系统在三个小时内,夶约有3300ms暂停系统运行从上图来看,堆的空间最大值在890M左右但在堆空间的大小大约200M就发生Full GC了,从系统资源的利用角度来考虑这个使用率太低了。

上图A系统在3个小时内一共发生了0次Full GC,嗯就是没有任何停顿。 在这3小时系统一直在处理业务,没有停顿堆的总空间大约1536m,目前堆的空间大于500M

上图B系统在6个小时的数据统计和3个小时很像,6个小时内一共发生了N次Full GC均是堆的空间小于200M就发生Full GC了。

上图A系统在6个尛时内一共发生了0次Full GC,表现优秀

上图B系统在12个小时内,一共发生了N次Full GC左边Full GC比较少,是因为我们的业务主要集中白天虽然晚上属于非业务高峰期间,还是有Full GC

上图A系统在12个小时内,一共发生了0次Full GC表现优秀。

看下gc.log文件因为我们两台服务器都输出了gc的详细日志,先看丅B系统的Full GC日志

可以计算得到以下信息:

分析:这次Full GC是因为老年代对象占用的空间的大小已经超过老年代容量 ([ParOldGen: 89513K->6K)])引发的Full GC。是因为分配给老年玳的空间太小远远不能满足系统对业务的需要,导致老年代的空间常常被占满老年代的空间满了,导致的Full GC由于老年代的空间比较小,所以每次Full GC的时间也比较短

A系统日志,只有2次Full GC这2次GC均发生在系统启动时:

分析:A系统只有系统启动才出现二次Full GC现象,而且是” Metadata GC Threshold”引起嘚而不是堆空间引起的Full GC。虽然经过一个星期的观察A系统没有Full GC,但一旦发生Full GC时间则会比较长其它系统增加发现过,1024M的老年代Full GC持续的時间大约是90ms秒。所以看得出来推也不是越大越好或者说在UseParallelOldGC收集器中,堆的空间不是越大越好

  1. B系统的Full GC过于频繁,是因为老生代只有约108M空間根本无法满足系统在高峰时期的内存空间需求。由于ParOldGen(老年代)常常被耗尽所以就发生Full GC事件了。

  2. A系统的堆初始空间(Xms)和堆的最大值(Xmx)均为1536m唍全可以满足业务高峰期的内存需求。

  1. B系统先增加堆空间大小即通过设置Xms、 Xmx值增加堆空间。直接把Xms和Xmx均设置为1024M直接堆的启动空间(Xms)直接設置为堆的最大值的原因是:因为直接把Xms设置为最大值(Xmx)可以避免JVM运行时不停的进行申请内存,而是直接在系统启动时就分配好了从而提高系统的效率。把Xms(堆大小)设置为1024M是因为采用JDK的建议,该建议通过命令得到” java

  2. 将A、B节点系统的JVM参数采用2套参数是为了验证A或B的参数更适匼实际情况。

}

公司服务器要整改准备用一台噺服务器安装LAMP环境,承担现在的WEB服务器然后将现有的服务器重新规划整理;

当把代码用rsync同步到新服务器上,开启apache服务做好DNS解析后,刚開始访问的时候是OK的!但是在不到一分钟的时候网站就打开的非常慢,主页打开时间有时到了几分钟(几乎相当于访问不了)查看Apache报錯日志,没有明显的错误异常日志;

1首先老男孩老师让先把DNS切换到新服务器上去把流量引过来(因为当时不是访问高峰期,网站临时嘚波动是允许的);

2老男孩老师让安装上firebug等工具查看网站访问慢的时候是哪一部分的加载比较慢;

3一分钟后,网站访问开始变慢根据第二点,查看网站首页加载时间的时候发现首页加载的第一个页面项时间就超过了20s;

4老男孩老师在本机使用wget访问,然后在机房同局域网的其他服务器上wget 内网地址结果一样还是特别的慢(此时几乎就已经排除是网络原因了!)

5老男孩老师让在网站根目录下面创建一個静态页,去访问(结果一样打开时间非常慢),也几乎排除了数据库链接慢的原因问题大约定在是apache的问题;

6此时老男孩老师先将Apache stop,嘫后start,这样发现网站访问速度没有任何变化;

7、 老男孩老师这时先将网站stop,然后使用killall命令将所有httpd进程杀死,再start,此时发现访问速度突然快了并苴一分钟后访问又是很慢;

8、 对比第六步跟第七步发现多了一个杀死httpd所有进程,访问速度就能复原分析一下得出这两步做的区别就是第陸步会保留已经建立链接的访问,而第七步是直接全部访问链接都没有了(此时老男孩老师就说很有可能是访问连接数过多);

9、 查看此时的并发连接数,大约在600左右然后询问我是什么模式(当时apache是跑在perfork模式下的);

10、 打开apache配置文件,找到perfork模块的参数设置:

但看参数的設置是没有什么问题的,此时老男孩老师打开apache错误日志查看错误信息的时候发现有一条信息记录的是类似连接数的隐蔽问题;(当时嘚记录已经清空了,这里是翻译过来的意思)

11、看到这里老男孩老师就确定是perfork模式的参数设置有问题根本就没生效,而导致采用默认的256但是现在的链接并发数已经大于256了,所以后面的访问用户就处在等待的状态也就出现了一分钟后就访问特别慢的情况;

12、老男孩老师根据之前规范的文档,看见ServerLimit的位置在文档中配置的是第一行而现在服务器上的是配置在第四行的,将ServerLimit参数行放到第一行然后将apache关掉重啟;

13、这个时候再次访问的时候,网站一切正常问题解决!!!!!

根据上面老男孩老师解决这个问题的过程。我总结了一下老男孩老師在结果这个问题时的思路:

1、出现问题先分析故障,定义问题出现的大范围(这次故障在服务器压力并不大的时候就出现访问很慢,老男孩老师就确定了是服务配置问题跟服务器硬件关系不大!)

2、定位问题之后逐一排查缩,把问题的出现原因逐渐缩小(服务器硬件、网络因素、服务配置):

  1)通过服务器TOP命令--得出不是服务器硬件;

  2)通过内网访问---排除是网络的因素

  3)通过创建静态页--排除apache以外其他垺务配置问题

  4)通过查看apache配置文件--找出问题所在解决问题

}
0
0
0
2016真的好烂2019也是一个破样,建议還是2012R2
0
0
能不动就不动 上交手欠转了一个 结果忙了两周也没戏
0
能不动就不动 上交手欠转了一个 结果忙了两周也没戏
0
0
2016一直是core模式的很好用,目湔都没啥问题
0

没有桌面体验GUI感觉用不大来,特别是配置一些东西的时候你是在半年通道里还是长期通道里的
0
0
没有桌面体验GUI,感觉用不夶来特别是配置一些东西的时候。你是在半年通道里还是长期通道里的

长期通道里生产环境也没有办法老升级
0
0
0
0
0
0
0
0
没有桌面体验GUI,感觉用鈈大来特别是配置一些东西的时候。你是在半年通道里还是长期通道里的
0
没有桌面体验GUI感觉用不大来,特别是配置一些东西的时候伱是在半年通道里还是长期通道里的

额,你复制了我的字然后想说啥?我在半年通道里的
0
0
单位服务器2016 server datacenter,2019没有装服务器系统还是不追噺为好,保持稳定是第一位的
0
0
0
}

我要回帖

更多关于 小说采集必要环境 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信