linux 大神们,求助 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
klakekent
V2EX    Linux

linux 大神们,求助

  •  
  •   klakekent 2015-08-17 09:59:32 +08:00 4987 次点击
    这是一个创建于 3721 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近我由于自己的服务器在运行一段时间后非常的慢(centos+apache+mysql+php ), 经过 top 查看 httpd 的进程在慢的时候占用了 100%的 cpu ,所以我决定用 strace 来看一下到底干了些啥,可是有些地方看不懂,大神们帮忙解释下啊,有几句我觉得很有疑问的 log 如下:

    22565 0.000011 semop (6029319, {{0, 1, SEM_UNDO}}, 1 ) = 0 <0.000011>
    22664 0.000019 <... semop resumed> ) = 0 <51.495516>
    22565 0.011550 getsockname (13, <unfinished ...>
    22623 0.000017 poll ([{fd=13, events=POLLIN}], 1, 60000 <unfinished ...>

    这个 semop resumed 怎么花费了那么长的时间呢?


    20308 0.000059 select (0, NULL, NULL, NULL, {1, 0} <unfinished ...>
    22548 0.819556 <... poll resumed> ) = 1 ([{fd=13, revents=POLLIN}]) <15.960587>
    22548 0.000041 read (13, "", 8000 ) = 0 <0.000090>
    22548 0.000112 shutdown (13, SHUT_WR ) = 0 <0.000010>
    22548 0.000022 poll ([{fd=13, events=POLLIN}], 1, 2000 ) = 1 ([{fd=13, revents=POLLIN|POLLHUP}]) <0.000005>

    这个 poll resumed 也是
    20 条回复    2015-08-22 02:23:43 +08:00
    dafang
        1
    dafang  
       2015-08-17 11:00:51 +08:00
    semop resumed 和 poll resumed 肯定不是 CPU 100%的根源, 进程从睡眠恢复.

    拿 poll 来说, poll 的过程如果没有可读写的 socket, poll 进程阻塞睡眠, 直到 socket 有数据后恢复.

    用 systemtap 追踪一下.
    rhwood
        2
    rhwood  
       2015-08-17 11:13:56 +08:00
    内存用完了吗?
    airqj
        3
    airqj  
       2015-08-17 11:23:34 +08:00
    用 perf 来跟踪就知道了
    klakekent
        4
    klakekent  
    OP
       2015-08-17 11:36:17 +08:00
    @rhwood 内存没用完,还有剩余的
    klakekent
        5
    klakekent  
    OP
       2015-08-17 11:36:29 +08:00
    @dafang
    @airqj 行 我试试
    jxiewei
        6
    jxiewei  
       215-08-17 12:11:15 +08:00
    先从 httpd 的日志开始分析起吧, systemd/perf 的结果都太底层了,不太好和业务模块对应起来。
    klakekent
        7
    klakekent  
    OP
       2015-08-17 12:19:06 +08:00
    @jxiewei http 的日志就是没看出任何问题,所以才选择了用 strace 来看。

    22664 0.000019 <... semop resumed> ) = 0 <51.495516> 我只是觉得这个最后花费的时间太长了 估计有问题
    jxiewei
        8
    jxiewei  
       2015-08-17 12:38:17 +08:00
    @klakekent 0.01s 的延时,如果是偶尔出现,可能是调度延时。
    如果平均下来都有 0.01s 的延时,有可能是信号量竞争太多了,是不是进程开太多了。
    henryon
        9
    henryon  
       2015-08-17 12:45:37 +08:00
    换 nginx 。。。 strace -t -r
    klakekent
        10
    klakekent  
    OP
       2015-08-17 13:09:30 +08:00
    @jxiewei 现在就是偶尔打开页面很慢,估计要 10 几秒才能 load 出页面。 目前配置看来,我的 httpd 的进程不多,配置如下
    <IfModule prefork.c>
    StartServers 2
    MinSpareServers 2
    MaxSpareServers 5
    ServerLimit 100
    MaxClients 80
    MaxRequestsPerChild 30
    </IfModule>

    @henryon 再调查一周试试,不行就准备换到 nginx 了
    kof21411
        11
    kof21411  
       2015-08-17 15:37:06 +08:00
    看看是不是有人用 php 漏洞在打你的服务器
    klakekent
        12
    klakekent  
    OP
       2015-08-17 16:29:50 +08:00
    @kof21411 没有哈,是我自己的内部服务器,就团队几个人自己人在用
    ctexlive
        13
    ctexlive  
       2015-08-17 17:47:45 +08:00 via Android
    采用默认设置也如此吗? php 用的什么模块?
    pubby
        14
    pubby  
       2015-08-17 18:01:52 +08:00
    配置上,进程数太高。

    根源可能是代码问题,比如"死循环"啥的
    klakekent
        15
    klakekent  
    OP
       2015-08-17 18:12:41 +08:00
    @pubby 是么?你是指的是 maxClients 太高了?我已经把这个调低了,最初的设置是 200 多。可是还是不行。 目前这个机器上搭建的就是个 wordpress 和 mediawiki,没有做二次开发

    @ctexlive 默认的配置就是一直有问题我才一直在调优。。 目前 php 用的 apache 的 php5_module
    klakekent
        16
    klakekent  
    OP
       2015-08-17 18:16:48 +08:00
    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule authn_alias_module modules/mod_authn_alias.so
    LoadModule authn_default_module modules/mod_authn_default.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_user_module modules/mod_authz_user.so
    LoadModule authz_default_module modules/mod_authz_default.so
    LoadModule ldap_module modules/mod_ldap.so
    LoadModule include_module modules/mod_include.so
    LoadModule log_config_module modules/mod_log_config.so
    LoadModule logio_module modules/mod_logio.so
    LoadModule env_module modules/mod_env.so
    LoadModule expires_module modules/mod_expires.so
    LoadModule deflate_module modules/mod_deflate.so
    LoadModule headers_module modules/mod_headers.so

    LoadModule setenvif_module modules/mod_setenvif.so
    LoadModule mime_module modules/mod_mime.so

    LoadModule autoindex_module modules/mod_autoindex.so

    LoadModule vhost_alias_module modules/mod_vhost_alias.so
    LoadModule negotiation_module modules/mod_negotiation.so
    LoadModule dir_module modules/mod_dir.so
    LoadModule actions_module modules/mod_actions.so

    LoadModule alias_module modules/mod_alias.so
    LoadModule substitute_module modules/mod_substitute.so
    LoadModule rewrite_module modules/mod_rewrite.so

    LoadModule cache_module modules/mod_cache.so
    LoadModule suexec_module modules/mod_suexec.so
    LoadModule disk_cache_module modules/mod_disk_cache.so

    目前除了 php 有这些模块加载
    pubby
        17
    pubby  
       2015-08-17 18:51:32 +08:00
    可以打开 apache 的 status 模块,看一下 CPU 100%的进程在处理什么请求? 尽量缩小查找问题的范围
    darluc
        18
    darluc  
       2015-08-18 01:19:30 +08:00
    难道是 php 版本太高?换个版本试试?
    chaegumi
        19
    chaegumi  
       2015-08-18 15:17:57 +08:00
    php 有个慢查询记录
    adrianzhang
        20
    adrianzhang  
       2015-08-22 02:23:43 +08:00
    换个内存
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     942 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 19:23 PVG 03:23 LAX 12:23 JFK 15:23
    Do have faith in what you're doing.
    ubao msn 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