新闻动态

新加坡服务器负载过高是怎么一回事?解决办法有吗?

2019-09-05

  【内容声明】本文收集整理于互联网,不确保内容真实性和质量度,仅供参考!若有服务器产品相关问题,请咨询[影速YINGSOO]在线客服,获取专业解答!

  【推荐产品】新加坡服务器新加坡云服务器推荐

  【精选文章】新加坡云服务器多少钱

新加坡服务器负载过高 - 影速科技云主机

  影速科技YINGSOO,国际数据中心综合服务提供商,专注高品质、企业级海外服务器租用/托管服务,拥有ISP牌照、实体公司、专业团队、9年经验,7x24x365全天候服务,3天免费试用,品质保障、值得信赖!

全国统一400热线:400-630-3752

《以下内容来源网络_服务器租用问题_请咨询[影速YINGSOO]在线客服》

  新加坡服务器负载过高是怎么回事呢?新加坡服务器相信大家都很熟悉,但是服务器负载过高是怎么回事呢,下面就让小编带大家一起了解吧。线上新加坡服务器存在问题学习。https://www.yingsoo.com/products/dedicated-sg.html

  问题现象:

  1,top命令查询新加坡物理服务器负载达到2.0-5之间,tomcat的cpu使用率达到104%

  问题分析过程:

  1),磁盘使用率未超出正常范围

  2),内存使用率未超出正常范围还有空闲

  3),新加坡服务器流量未现明显峰值

  4),jvm内存状态未现异常非GC原因

  综合初步预估是tomcat有线程一直在运行占用cpu资源

  问题引出:如何确定tomcat的100%的cpu使用率到底问题在哪?

  新加坡服务器负载过高问题定位方案:

  使用java提供的是jstack线程分析命令对进程里面的线程状态进行分析,先导出线程快照再分析具体是那个线程及对应的类

  执行步骤:

  第一步:ps -ef|grep tomcat 查询出java/tomcat进程PID(eg:8209)

  第二步:ps -aux 查询出该进程是哪个用户启动的(即使ROOT用户可能也导出线程快照失败)

  第三步:su tomcat 切换到进程启动用户

  第四步:jstack -l 8209 > /usr/local/work/tomcat/8209.stack 导出PID对应的线程信息到文件

  第五步:对导出的线程文件下载本地做分析(可以文本打开)

  第六步:top -H -p 8209 命令查看对应进程是哪个线程占用CPU过高(eg:8308)

  第七步:printf '%x\n' 8308 转换十进制为十六进制 此处为:2074

  第八步:在导出的堆栈文件中搜索线程ID等于nid=0x2074的线程,此处即列出了该线程对应的类

  第九步:根据线程信息找到对应的类定位问题成功,找到原因:日志队列线程一直处于RUNNABLE状态,一直在while循环判定队列是否为空

  一,确认新加坡服务器硬件是否足够支持当前的流量。

  二,优化数据库访问。

  新加坡服务器的负载过大,一个重要的原因是CPU负荷过大,降低新加坡服务器CPU的负荷,才能够有效打破瓶颈。而使用静态页面可以使得CPU的负荷最小化。前台实现完全的静态化当然最好,可以完全不用访问数据库,不过对于频繁更新的网站,静态化往往不能满足某些功能。

  缓存技术就是另一个解决方案,就是将动态数据存储到缓存文件中,动态网页直接调用这些文件,而不必再访问数据库,WordPress和Z-Blog都大量使用这种缓存技术。

  如果确实无法避免对数据库的访问,那么可以尝试优化数据库的查询SQL.避免使用Select *from这样的语句,每次查询只返回自己需要的结果,避免短时间内的大量SQL查询。

  三,禁止外部的盗链。

  外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对于自身的图片或者文件盗链,好在目前可以简单地通过refer来控制盗链,Apache自己就可以通过配置来禁止盗链,IIS也有一些第三方的ISAPI可以实现同样的功能。当然,伪造refer也可以通过代码来实现盗链,不过目前蓄意伪造refer盗链的还不多,可以先不去考虑,或者使用非技术手段来解决,比如在图片上增加水印。

  四,控制大文件的下载。

  大文件的下载会占用很大的流量,并且对于非SCSI硬盘来说,大量文件下载会消耗CPU,使得网站响应能力下降。因此,尽量不要提供超过2M的大文件下载,如果需要提供,建议将大文件放在另外一台新加坡服务器上。

  本文关键词:新加坡服务器负载过高,新加坡服务器

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部