最近在 CentOS 6 上了一个新服务,经常 cash,搞的焦头烂额,有什么办法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
jimrok
V2EX    程序员

最近在 CentOS 6 上了一个新服务,经常 cash,搞的焦头烂额,有什么办法

  •  
  •   jimrok 2015-11-13 17:29:16 +08:00 5045 次点击
    这是一个创建于 3619 天前的主题,其中的信息可能已经有所发展或是发生改变。
    程序是 c 做的,可是我不会呀,写代码的人说要开 core dump 。我 google 一下,做了几件事。

    修改 /etc/security/limits.conf 增加
    * soft core 10240

    修改 /etc/sysctl.conf ,加了这几项。
    kernel.core_uses_pid = 1
    kernel.core_pattern = /tmp/core-%e-%s-%u-%g-%p-%t
    fs.suid_dumpable = 1

    执行生效
    sysctl -p

    再启动的脚本里增加
    ulimit -c 10240
    DAEMON_COREFILE_LIMIT='unlimited'

    最后连 monit 的脚本也加上
    ulimit -c 10240
    DAEMON_COREFILE_LIMIT='unlimited'

    还是没有任何 core dump 的信息,大家有什么大招快砸来吧,除了不能重启环境,因为是生产系统。
    20 条回复    2015-11-16 14:19:53 +08:00
    znoodl
        1
    znoodl  
       2015-11-13 17:37:20 +08:00   1
    其实只要手动 ulimit -c 10240 就行了,然后运行程序
    之后 gdb -c core.* program*调试

    PS:为啥不是写程序的人调试?
    tesion99
        2
    tesion99  
       2015-11-13 17:38:13 +08:00   1
    编译的时候要加上相关的调试参数 -g,同时把编译的优化选项去掉,运行程序,根据产生的 core dump 文件,运行相关 gdb 命令,调试
    ps:注意查看 core dump 文件的生成路径,一般为当前程序运行目录下
    jimrok
        3
    jimrok  
    OP
       2015-11-13 17:42:58 +08:00
    @tesion99 我检查一下 build 的人使用的参数。
    jimrok
        4
    jimrok  
    OP
       2015-11-13 17:57:04 +08:00
    貌似都是加了,调试版本的代码很大。
    ryd994
        5
    ryd994  
       2015-11-13 18:05:03 +08:00
    上 valgrind 。另外这个难道不属于 bug 么?打回去返工
    oott123
        6
    oott123  
       2015-11-13 18:20:37 +08:00
    =_= 难道没人提醒楼主是 crash 不是 cash ……
    jimrok
        7
    jimrok  
    OP
       2015-11-13 19:12:06 +08:00
    @oott123 是 crash ,焦头烂额。
    zzhhgo
        8
    zzhhgo  
       2015-11-13 19:19:48 +08:00   1
    ulimit -c unlimited

    这个为了让你当前环境可以用

    echo "ulimit -c unlimited" >> ~/.bash_profile

    这个让你在下次 ssh 连上可以用

    ulimit -a
    这个用来查看

    查看当前 core size 是不是显示 unlimited ?
    jimrok
        9
    jimrok  
    OP
       2015-11-13 19:31:38 +08:00
    @ryd994 压力测试和功能测试都出现不了。上了客户的网络就不定期的蹦溃,开发觉得只有 core dump 能知道问题了,代码看了几遍不知道在什么地方有问题。
    julypanda
        10
    julypanda  
       2015-11-13 19:48:39 +08:00   1
    看见 cash 进来的
    感觉被骗了
    jimrok
        11
    jimrok  
    OP
       2015-11-13 19:56:57 +08:00
    @zzhhgo 已经加了,但每次 crash 都看不到 core , 难道哪里配置错误了,程序应该是 monit 在崩溃后带起来的。
    jimrok
        12
    jimrok  
    OP
       2015-11-13 19:59:46 +08:00
    感觉用 C 写代码技术不精就是受虐,开发,运维,老板,客户一起虐,可看着国外那么多 nginx , redis , memcached ,大把的 C 代码的产物。不知道是靠什么来保证品质的。
    tinkerer
        13
    tinkerer  
       2015-11-13 21:32:21 +08:00 via iPhone   1
    楼主用 cash 让我点击进来了…
    freeznet
        14
    freeznet  
       2015-11-13 21:51:45 +08:00   1
    我如果遇到不 dump 的情况,就会选择直接用 tmux+gdb 执行程序,然后等待崩溃再切过去调试~。

    其实我也经常遇到不 dump 的情况,一直没搞懂为毛会不 dump ,坐等大神解答。
    frienmo
        15
    frienmo  
       2015-11-13 21:56:07 +08:00   1
    昨天中美两国程序员
    今天上个新服务器就 cash
    stanhou
        16
    stanhou  
       2015-11-13 22:16:00 +08:00   1
    还以为 LZ 收 CASH 收到手抽筋呢
    aliipay
        17
    aliipay  
       2015-11-14 13:13:12 +08:00
    要是不是 crash 而是自己 exit ,这就搞笑了
    aliipay
        18
    aliipay  
       2015-11-14 13:13:52 +08:00
    如果不是 crash 而是自己 exit ,这就搞笑了
    zzhhgo
        19
    zzhhgo  
       2015-11-15 20:48:41 +08:00   1
    @jimrok 看看 core 文件是不是在其他目录下,或者在小流量环境下直接开 gdb 吧
    jimrok
        20
    jimrok  
    OP
       2015-11-16 14:19:53 +08:00
    @zzhhgo 貌似 core 是能够通过 kill 产生,产生的位置符合 core_pattern 的设置,我还找了这篇文章: https://www.centos.org/forums/viewtopic.php?t=5962 ,不过好像然并卵。我有点开始怀疑某处代码自己退出了系统。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5506 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 08:40 PVG 16:40 LAX 01:40 JFK 04:40
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86