zoukankan      html  css  js  c++  java
  • 一次网站负载问题的解决

    环境:
        服务器4核4GB内存,运行基于动易SW7的网站及基于OBLOG4的博客,数据库基于MSSQLSERVER2000。网站和博客大部分都做了静态化

    现象:
        自5月份以来系统,SW7速度突然变慢,前后台页面打开速度以及静态页面生成速度都极慢。静态页面打开速度影响不大

    分析:
    1 服务器安全
        经过仔细检查,服务器没有入侵迹象。也没有发现有效的攻击记录。

    2 网络访问量
        分析网站日志以及流量统计,未发现访问量的明显变化,因为网站速度慢访问量甚至还有所下降。

    3 服务器负载
        SQLSERVER进程占用了2GB内存。IIS进程占用约800MB,CPU利用率波动较大。总体上看负载还可以,CPU波动大应该与SQLSERVER有很大关系

    4 数据库
        首先检查数据量,SW7的信息数据量在15W左右,日志表数据量在2W左右。OBLOG博文信息数据量在4W左右,日志表数据量在1W以下。应该讲这个数据量是很小的,服务器绝对能跑得动。但表现出来的现象应该就是出在数据库,于是清空了两个系统的日志表,同时针对SW7的信息表做了分表,将2008年以前的数据分了出去,这时信息表数据量在10W左右。经过上面操作后,SW7的访问速度仍然非常慢。
        结合现象再次分析,认为一定是有某处数据库瓶颈没有找到。再次分析SW7的表使用情况,未发现有更多数据量数据表,问题排查一度无果。后来不经意间在备份数据库时发现OBLOG的备份文件竟然有近2个GB,远远超过了SW7(SW7的备份文件大小在800MB左右),很显然OBLOG数据库里一定有一张超大表。于是用脚本将OBLOG中各表的数据量以及占用空间列出来,脚本如下:
    create table #t(name varchar(255), rows bigint, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20))
    exec sp_MSforeachtable "insert into #t exec sp_spaceused '?'"
    select * from #t
    drop table #t

        不列不知道一列吓一跳,发现oblog_trackback这张表竟然有近250W条记录,这是何方神圣,立刻GOOGLE。原来这是OBLOG的引用通知记录表,同时在OBLOG的官方网上也有人反映此表数据量超大的问题(不过也就10来W,和我这个比起来还是差远了)影响性能,官方的解答很简单 1 在OBLOG管理后台关掉引用通告 2 清空此表。
         于是 truncate table oblog_trackback,然后进后台设置。再看网站速度明显快了很多,看来问题的症结找到了。

    体会
    1 分析问题还是钻了死胡同,只盯着几张主表看,没有注意其他表
    2 这个问题应该早已有之,只不过症状不是很明显,所以也就得过且过了,最后小问题变成大问题
    3 OBLOG应该在后台管理引用通告开关调节的地方注明一下,此选项打开可能会影响网站性能。
  • 相关阅读:
    [CFNews] EnCase v7更新至7.05.1
    [CFNews] Guidance 发布EnCase v7.05和EnCase Portable v4.1
    [CFNews] 首届国际电子数据取证调查会议将于9月21日在北京召开
    [转载] iPhone 5 forensics – prepare to be assimilate
    [CFNews] Oxygen Forensic Suite发布4.6
    [Ext]在按钮栏添加Checkbox
    [转]动态改变图片的useMap属性导致IE假死或崩溃!
    [转]Custom Configuration Section Handler in .NET 2.0
    判断当前的网络状态(C#)
    自定义配置节示例(.NET 2.0)
  • 原文地址:https://www.cnblogs.com/lykyl/p/1538522.html
Copyright © 2011-2022 走看看