如何查找 Apache httpd 进程正在做什么?

如何查找 Apache httpd 进程正在做什么?

我有一个 Web 应用程序,几乎有 5-10 个用户一直在使用。每天有 1 到 3 次它会停止运行。

当发生这种情况时,我可以在 TOP 中看到以下内容:

last pid:  1744;  load averages: 15.50, 45.91, 31.79                                                        up 0+01:04:01  14:47:59
357 processes: 1 running, 351 sleeping, 5 waiting
CPU:  0.2% user,  0.0% nice,  2.8% system,  2.4% interrupt, 94.6% idle
Mem: 1612M Active, 180M Inact, 174M Wired, 8012K Cache, 103M Buf, 108K Free
Swap: 4096M Total, 2104M Used, 1992M Free, 51% Inuse, 40M Out

  PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
 1384 www           1  44    0   156M  3256K pfault  0   0:36  0.00% httpd
 1477 www           1  44    0   154M  8008K pfault  1   0:35  0.00% httpd
 1053 mysql       161  44    0   199M 54108K umtxn   0   0:27  0.00% mysqld
 1441 www           1  44    0   154M     0K WAIT    0   0:26  0.00% <httpd>
 1521 www           1  44    0   164M     0K sbwait  1   0:20  0.00% <httpd>
 1519 www           1  44    0   156M  7832K pfault  0   0:19  0.00% httpd
 1520 www           1  44    0   138M  8724K select  1   0:19  0.00% httpd
 1527 www           1  46    0   138M     0K accept  0   0:17  0.00% <httpd>
 1422 www           1  44    0   138M  3096K pfault  0   0:16  0.00% httpd
 1290 root          1  44    0   130M  9060K select  1   0:15  0.00% httpd
 1529 www           1  44    0   164M  3740K pfault  1   0:15  0.00% httpd
 1532 www           1  44    0   154M 22704K pfault  0   0:15  0.00% httpd
 1530 www           1  44    0   164M     0K sbwait  0   0:14  0.00% <httpd>
 1525 www           1  44    0   156M     0K sbwait  1   0:14  0.00% <httpd>
 1531 www           1  44    0   138M  8168K pfault  1   0:13  0.00% httpd
 1528 www           1  44    0   164M     0K sbwait  0   0:13  0.00% <httpd>
 1533 www           1  44    0   156M  3252K pfault  1   0:12  0.00% httpd
 1534 www           1  44    0   156M  3592K pfault  1   0:12  0.00% httpd
 1544 www           1  44    0   156M  4620K pfault  1   0:12  0.00% httpd
 1540 www           1  44    0   156M  4340K pfault  1   0:12  0.00% httpd
 1543 www           1  44    0   156M  4744K pfault  0   0:11  0.00% httpd
 1546 www           1  44    0   154M 11764K pfault  1   0:11  0.00% httpd
 1547 www           1  44    0   154M  8176K pfault  0   0:11  0.00% httpd
 1545 www           1  44    0   154M  8660K pfault  1   0:11  0.00% httpd
 1541 www           1  44    0   156M     0K WAIT    1   0:10  0.00% <httpd>
 1558 www           1  44    0   158M 19996K pfault  0   0:10  0.00% httpd
 1559 www           1  44    0   154M 10324K pfault  0   0:10  0.00% httpd
 1555 www           1  44    0   154M 18796K pfault  1   0:09  0.00% httpd
 1569 www           1  44    0   156M  6208K pfault  0   0:09  0.00% httpd
 1566 www           1  44    0   154M 10996K pfault  0   0:09  0.00% httpd
 1561 www           1  44    0   156M 15724K pfault  1   0:09  0.00% httpd
 1562 www           1  44    0   154M  8076K pfault  0   0:09  0.00% httpd
 1572 www           1  44    0   154M 11308K pfault  0   0:09  0.00% httpd
 1571 www           1  44    0   154M     0K sbwait  0   0:08  0.00% <httpd>
 1553 www           1  44    0   154M     0K sbwait  1   0:08  0.00% <httpd>
 1567 www           1  44    0   154M 13108K pfault  1   0:08  0.00% httpd
 1565 www           1  44    0   152M 17284K pfault  0   0:08  0.00% httpd
 1602 www           1  44    0   156M  4232K pfault  1   0:08  0.00% httpd
 1548 www           1  44    0   154M  8948K pfault  0   0:08  0.00% httpd
 1577 www           1  44    0   156M 15732K pfault  0   0:08  0.00% httpd
 1573 www           1  44    0   156M 16244K pfault  0   0:08  0.00% httpd
 1554 www           1  44    0   154M     0K sbwait  0   0:08  0.00% <httpd>
 1585 www           1  44    0   156M     0K WAIT    1   0:08  0.00% <httpd>
 1552 www           1  44    0   154M     0K sbwait  0   0:08  0.00% <httpd>
 1575 www           1  44    0   154M 11956K pfault  0   0:08  0.00% httpd
 1570 www           1  44    0   156M 16260K pfault  1   0:08  0.00% httpd
 1583 www           1  44    0   156M 15368K pfault  1   0:08  0.00% httpd
 1580 www           1  44    0   154M 11112K pfault  0   0:08  0.00% httpd
 1600 www           1  44    0   156M  4248K pfault  1   0:08  0.00% httpd
 1589 www           1  44    0   154M     0K sbwait  1   0:08  0.00% <httpd>
 1578 www           1  44    0   154M     0K sbwait  0   0:08  0.00% <httpd>
 1557 www           1  44    0   154M     0K sbwait  1   0:07  0.00% <httpd>
 1617 www           1  44    0   154M 11244K pfault  1   0:07  0.00% httpd
 1574 www           1  44    0   154M  8360K pfault  1   0:07  0.00% httpd
 1560 www           1  44    0   154M 10156K pfault  0   0:07  0.00% httpd
 1603 www           1  44    0   156M  4968K pfault  0   0:07  0.00% httpd
 1590 www           1  44    0   154M 11860K pfault  0   0:07  0.00% httpd
 1592 www           1  44    0   156M 14280K pfault  1   0:07  0.00% httpd
 1581 www           1  44    0   156M  6412K pfault  0   0:07  0.00% httpd
 1586 www           1  44    0   154M 11176K pfault  0   0:07  0.00% httpd
 1608 www           1  44    0   156M  7256K pfault  1   0:07  0.00% httpd
 1568 www           1  44    0   154M 10784K pfault  1   0:07  0.00% httpd
 1591 www           1  44    0   154M 13256K pfault  0   0:07  0.00% httpd
 1610 www           1  44    0   156M  3440K pfault  0   0:07  0.00% httpd
 1650 www           1  44    0   156M     0K sbwait  1   0:07  0.00% <httpd>
 1616 www           1  44    0   154M 13724K pfault  0   0:07  0.00% httpd
 1611 www           1  44    0   154M 10084K pfault  0   0:06  0.00% httpd
 1564 www           1  44    0   154M 12220K pfault  1   0:06  0.00% httpd
 1607 www           1  44    0   156M     0K sbwait  0   0:06  0.00% <httpd>
 1601 www           1  44    0   154M 13728K pfault  1   0:06  0.00% httpd
 1634 www           1  44    0   156M     0K sbwait  0   0:06  0.00% <httpd>
 1606 www           1  44    0   156M     0K sbwait  1   0:06  0.00% <httpd>
 1626 www           1  44    0   156M  3340K pfault  1   0:06  0.00% httpd
 1633 www           1  44    0   156M     0K sbwait  0   0:06  0.00% <httpd>
 1579 www           1  44    0   154M  8508K pfault  1   0:06  0.00% httpd
 1596 www           1  44    0   156M     0K sbwait  1   0:06  0.00% <httpd>
 1584 www           1  44    0   156M  2388K pfault  1   0:06  0.00% httpd
 1641 www           1  44    0   156M  3060K pfault  0   0:06  0.00% httpd
 1632 www           1  44    0   156M  3144K pfault  1   0:06  0.00% httpd
 1657 www           1  44    0   156M     0K sbwait  1   0:06  0.00% <httpd>
 1630 www           1  44    0   156M  6872K pfault  0   0:06  0.00% httpd
 1609 www           1  44    0   156M     0K sbwait  1   0:06  0.00% <httpd>
 1661 www           1  44    0   156M  5688K pfault  0   0:05  0.00% httpd
 1612 www           1  44    0   156M 17816K sbwait  1   0:05  0.00% httpd
 1670 www           1  44    0   156M  4904K pfault  0   0:05  0.00% httpd
 1576 www           1  44    0   154M 13980K pfault  1   0:05  0.00% httpd
 1673 www           1  44    0   156M     0K sbwait  0   0:05  0.00% <httpd>
 1645 www           1  44    0   156M  3312K pfault  0   0:05  0.00% httpd
 1597 www           1  44    0   156M  6004K pfault  1   0:05  0.00% httpd
 1587 www           1  44    0   156M  6008K sbwait  1   0:05  0.00% httpd
 1628 www           1  44    0   156M     0K sbwait  0   0:05  0.00% <httpd>
 1660 www           1  44    0   156M  6180K pfault  0   0:05  0.00% httpd
 1647 www           1  44    0   158M     0K sbwait  1   0:05  0.00% <httpd>
 1582 www           1  44    0   156M     0K sbwait  0   0:05  0.00% <httpd>
 1664 www           1  44    0   156M     0K sbwait  0   0:05  0.00% <httpd>
 1651 www           1  44    0   156M     0K WAIT    1   0:05  0.00% <httpd>
 1674 www           1  44    0   156M  7560K pfault  0   0:05  0.00% httpd
 1631 www           1  44    0   156M  6464K pfault  0   0:05  0.00% httpd
 1655 www           1  44    0   158M     0K sbwait  0   0:05  0.00% <httpd>
 1669 www           1  44    0   156M     0K sbwait  0   0:04  0.00% <httpd>
 1659 www           1  44    0   156M  5936K pfault  1   0:04  0.00% httpd
 1663 www           1  44    0   156M  5828K pfault  0   0:04  0.00% httpd
 1672 www           1  44    0   156M  5764K pfault  0   0:04  0.00% httpd
 1613 www           1  44    0   156M  5784K pfault  1   0:04  0.00% httpd
 1667 www           1  44    0   156M  3696K pfault  1   0:04  0.00% httpd
 1662 www           1  44    0   156M  3336K pfault  0   0:04  0.00% httpd
 1671 www           1  44    0   156M  5036K sbwait  0   0:04  0.00% httpd
 1675 www           1  44    0   156M  6228K pfault  1   0:04  0.00% httpd
 1629 www           1  44    0   156M  5788K pfault  0   0:04  0.00% httpd

有没有什么方法可以找出 httpd 进程卡住的原因?

答案1

首先,正如 ETL 所写,启用mod_statusExtendedStatus On查看当前请求及其状态、执行时间等。您还可以使用apachetop来获取哪个文件最流行的信息。如果这些信息对您来说还不够,正如 timmeyh 所写,您可以使用strace但我会建议-ff-p开关(确保您指定了主 apache 进程 id)。

-ff转变

如果 -o filename 选项有效,则每个进程的跟踪信息都会写入 filename.pid,其中 pid 是每个进程的数字进程 ID。这与 -c 不兼容,因为不保留每个进程的计数。

-p转变

附加到进程 ID 为 pid 的进程并开始跟踪。跟踪可随时通过键盘中断信号 (CTRL-C) 终止。strace 将通过将其自身与跟踪的进程分离来做出响应,让其继续运行。

答案2

您还可以使用状态模块和扩展状态页面来查看当前的请求。

答案3

您可以使用常见的 strace 命令来跟踪您的 httpd 正在执行的操作。您的命令将类似于以下内容:

strace -f -o trace.txt /etc/rc.d/init.d/httpd start

“-f” strace 选项会跟踪当前跟踪的进程在“fork”系统调用后创建的子进程。-o trace.txt 是您要转储跟踪的输出文件。

希望这可以帮助

相关内容