免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: green_apple
打印 上一主题 下一主题

是什么让跑在IBM 3650服务器上的RHEL4 U4 宕机? [复制链接]

论坛徽章:
0
31 [报告]
发表于 2008-07-28 00:27 |只看该作者
原帖由 green_apple 于 2008-7-27 23:44 发表
我跟踪 free  的输出发现一个问题,就是  free 输出 的第一行 buffers   和  cached 的值随着时间在增长, 很疑惑,为什么会这样, 难道应用中打开的文件或者设备没有关闭? 下面是三个时间点的值, 我每隔1分钟 ...


buffer和cache的情况不是user space控制的,所以这个东西具体怎么样增长我们说了不算。
可用物理内存要看第二行。

不过我就是觉得奇怪,为什么你的buffer和cache都这么小?难道你调过系统一些底层参数?

论坛徽章:
0
32 [报告]
发表于 2008-07-28 01:26 |只看该作者
原帖由 jerrywjl 于 2008-7-28 00:27 发表


buffer和cache的情况不是user space控制的,所以这个东西具体怎么样增长我们说了不算。
可用物理内存要看第二行。

不过我就是觉得奇怪,为什么你的buffer和cache都这么小?难道你调过系统一些底层参数?



我也有点奇怪的, 因为在新装RHEL4 U7 应用一起来, cache 的值就很大
2008年07月28日 01时22分12秒
             total       used       free     shared    buffers     cached
Mem:          4049       3359        690          0         24       3212
-/+ buffers/cache:        121       3928
Swap:         8189          0       8189
01:22:12 up  2:44, 12 users,  load average: 0.64, 1.02, 0.89
=======================================================================

这个问题我还要在观察一下,同时留意一下其他几台同配置,同操作系统的服务器的情况, 内核参数作过一些
修改, 在/etc/sysctl.conf 增加了如下内容

kernel.shmmax=134217728
kernel.msgmni=128

fs.file-max=65536
net.core.rmem_default=262144
net.core.wmem_default=262144

新装的RHEL4 U7 也作了同样的修改

论坛徽章:
0
33 [报告]
发表于 2008-07-28 01:40 |只看该作者
原帖由 jerrywjl 于 2008-7-27 23:22 发表


你既然知道我管你要的是什么东西,我想你自己看比我看要来得更直接一些了。
另外如果你贴上来,多少还有点机会;如果你贴都不贴上来,那就一点机会都没有了。

不过你那台服务器是跑关键应用的,我不保证 ...



和银行、证券相比,我这个算不上什么关键应用, 也没有敏感数据, 我把那个shell 脚本源码附上, 有空帮我看一眼

#!/bin/bash

function Usage()
{
   echo "Usage: ${0##*/} 欲分析的交易日期"
   echo "       注: 禁止对当天的实时交易日志进行分析,有可能造成系统宕机!"
   exit 1
}

#set -x
function Check_date()
{
   year=${1:0:4}
   month=${1:4:2}
   day_first=${1:6:1}
   if [ $day_first == "0" ]; then
       day=${1:7:2}
   else
       day=${1:6:2}
   fi

   cal $month $year | grep -q "\<$day" && return 1
   echo "请输入合法的日期值(格式:YYYYMMDD)"
   return 0
}

#[ $# -eq 1 ] &&  Check_date  $1 && Usage
cur_date=`date +%Y%m%d`

if [ $# -eq 1 ]; then
  Check_date  $1
  #[ $? -eq 0  -o "$cur_date" == "$1" ] && Usage
  trade_date=$1
else
  Usage
fi

log_prefix="${HOME}/log/trans/"
ebsfile="${log_prefix}ebsfs-${trade_date}.tra"
bosscfile="${log_prefix}bossc-${trade_date}.tra"
bosssfile="${log_prefix}bosss-${trade_date}.tra"

if [ -f ${ebsfile} -a ${bosscfile} -a ${bosssfile} ]; then
   :
else
   echo "${trade_date}的交易日志不存在!请指定分析日期"
   exit 1
fi

resultfile="${log_prefix}BOSS_timeout_analyse-${trade_date}.result"
if [ -f ${resultfile} ]; then
   #echo "${trade_date}充值交易BOSS超时情况分析结果文件【${resultfile}】已经存在,请直接查看!"
   more ${resultfile}
   exit 1
fi

#set -x
total=0
noreturn=0
succ=0
fail=0

echo "                   ****  $trade_date 充值交易BOSS通信超时情况分析  ****" | tee -a ${resultfile}
echo "================================================================================================" | tee -a ${resultfile}
echo -e "    充值交易BOSS流水号          代理商号码   用户号码   金额  充值时间   发送    接收    充值结果"  | tee -a ${resultfile}
#set -x

cz_total=0
cz_send_total=0
cz_recv_total=0
cz_noret_total=0
cz_succ=0

cz_serial_list=`grep "send reverse trade to boss" $ebsfile | cut -b 104-135`
for cz_serial in $cz_serial_list
do
  cz_total=`expr $cz_total + 1`
  agent=${cz_serial:4:11}
  cz_sendtime=`grep -B 1 $cz_serial $ebsfile | grep -B 1 0081500001 | sed -n 1,1p \
                  | cut -b 14-21`
  cz01_content=`grep $cz_serial $ebsfile | grep 0081500001`
  user=${cz01_content:28:11}
  money=${cz01_content:39:16}
  money=`expr $money / 100`

  cz01_content=`grep -B 1 $cz_serial $bosscfile | grep -B 1 "013201010301"`   
  if [ "CZ${cz01_content}" ==  "CZ" ]; then
     boss_sendtime="        "
     random_01=
  else
     cz_send_total=`expr $cz_send_total + 1`
     boss_sendtime=`echo "$cz01_content" | sed -n 1,1p | cut -b 14-21`
     random_01=`echo "$cz01_content" | sed -n 2,2p | cut -b 48-57`
  fi

  if [ "CZ${random_01}" ==  "CZ" ]; then
      ret01_content=
  else
      ret01_content=`grep -B 1 $random_01 $bosssfile | grep -B 1 "充值"`
  fi

  if [ "CZ${ret01_content}" ==  "CZ" ]; then
     recv_time="        "
     cz_result="BOSS未回"
  else
     cz_recv_total=`expr $cz_recv_total + 1`
     recv_time=`echo "$ret01_content" | sed -n 1,1p | cut -b 14-21`
     cz_result=`echo "$ret01_content" | sed -n 2,2p | cut -b 43-50`
     if [ "${cz_result}" == "10000000" ]; then   
        cz_result="充值成功"
        cz_succ=`expr $cz_succ + 1`
     fi
  fi
  cz_noret_total=`expr $cz_send_total - $cz_recv_total`
  
  cz02_content=`grep -B 1 $cz_serial $gdbosscfile | grep -B 1 "013601010401"`
  if [ "CZ${cz02_content}" ==  "CZ" ]; then
      random_02=
  else
      random_02=`echo "$cz02_content" | sed -n 2,2p | cut -b 49-58`
  fi
  
  if [ "CZ${random_02}" ==  "CZ" ]; then
     ret_content=
  else
     ret_content=`grep -B 1 $random_02 $gdbosssfile | grep -B 1 "冲正"`  
  fi

  if [ "CZ${ret_content}" ==  "CZ" ]; then
     result_code="BOSS未回"
  else
     result_code=`echo "$ret_content" | sed -n 2,2p | cut -b 43-50`
     [ $result_code == "10000000" ] && result_code="冲正成功"
  fi
  echo -e "$cz_serial $agent $user $money\t$cz_sendtime $boss_sendtime $recv_time $cz_result" | tee -a ${resultfile}
done
echo "================================================================================================"  | tee -a ${resultfile}
echo "BOSS超时总条数: $cz_total; 发送BOSS: $cz_send_total; BOSS应答: $cz_recv_total; BOSS未回: $cz_noret_total; BOSS成功: $cz_succ"  | tee -a ${resultfile}

set +x

论坛徽章:
0
34 [报告]
发表于 2008-07-28 02:03 |只看该作者
我刚才将新装RHEL4 U7 应用和系统重启之后, 在没有启动应用之前 free 及uptime 的输出

2008年07月28日 01时47分41秒
             total       used       free     shared    buffers     cached
Mem:          4049        107       3942          0          9         46
-/+ buffers/cache:         52       3997
Swap:         8189          0       8189
01:47:41 up 1 min,  4 users,  load average: 1.04, 0.45, 0.16
=======================================================================

下面是应用启动之后, free 及 uptime 的输出
2008年07月28日 01时49分41秒
             total       used       free     shared    buffers     cached
Mem:          4049        157       3892          0          9         81
-/+ buffers/cache:         65       3984
Swap:         8189          0       8189
01:49:41 up 3 min, 10 users,  load average: 0.14, 0.30, 0.14
=======================================================================

buffer 及 cache 的值都很小哦。前面 这个输出
2008年07月28日 01时22分12秒
             total       used       free     shared    buffers     cached
Mem:          4049       3359        690          0         24       3212
-/+ buffers/cache:        121       3928
Swap:         8189          0       8189
01:22:12 up  2:44, 12 users,  load average: 0.64, 1.02, 0.89
=======================================================================

是系统安装后,作了一些修改设置, 并且将生产应用及日志tar 包从原来那个生产机移到这个新的U7 的系统上, 进行了 tar zxvf 文件解包的操作 , 之后应用起来cached的值就比较大了

   我现在也不清楚这个 cached 的值大与小 对于系统有什么影响?

论坛徽章:
0
35 [报告]
发表于 2008-07-28 13:47 |只看该作者
/var/log/messages日志在异常宕机情况下提供不了什么有用的信息,建议楼主搭个netdump服务器,将宕机时的dump信息收集来再看。
升级内核版本是好主意

论坛徽章:
0
36 [报告]
发表于 2008-07-28 13:53 |只看该作者
原帖由 wnzl 于 2008-7-28 13:47 发表
/var/log/messages日志在异常宕机情况下提供不了什么有用的信息,建议楼主搭个netdump服务器,将宕机时的dump信息收集来再看。
升级内核版本是好主意


做netdump的话只能自己看,而且要做netdump,还需要启用nmi_watchdog以及确定是系统hang才会收到dump core。

论坛徽章:
0
37 [报告]
发表于 2008-07-28 13:58 |只看该作者
原帖由 wnzl 于 2008-7-28 13:47 发表
/var/log/messages日志在异常宕机情况下提供不了什么有用的信息,建议楼主搭个netdump服务器,将宕机时的dump信息收集来再看。
升级内核版本是好主意



谢谢 您的建议, 不过升级内核 还是要再考虑

论坛徽章:
0
38 [报告]
发表于 2008-07-29 09:59 |只看该作者
建议:
看来大家都还不能肯定原因在哪里,那么还不如先做点肯定有用的事情,逐步向目标逼近吧.
1.象wnzl兄所说的,如果有手段能收到当机时的信息,那就没有理由放过.(不过前提是有人能够分析收到的dump);
2.硬件检测,我记得3650在开机的时候可以进入硬件检测的界面,系统有空闲时间的话最好先做一遍硬件检测,确保这个系统的硬件平台是稳固的(其实我个人认为这种当机跟底层关系比较大);
3.如果有空机器的话,装U3跑应用看看,确认是否跟操作系统升级是否有关系.
另外jerrywjl兄所说的3650未通过U4认证的问题,的确是一个疑点,不过个人觉得不太可能由于这个原因就会如此频繁的当机.

论坛徽章:
0
39 [报告]
发表于 2008-07-29 10:17 |只看该作者
我跟LZ的情况差不多
IBM 3650服务器上的RHEL4 U5没规律的自启或shutdown
初步判断的原因是应用代码的问题,把应用停止后到目前为止还没出现过自启或shutdown

论坛徽章:
0
40 [报告]
发表于 2008-07-29 10:33 |只看该作者
你可以把你需要的日志文件sync到别的机器上,然后做分析,看这样机器是否还会宕机
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP