了解“顶级”用户

chr*_*ris 0 hosting lamp

我正在 LAMP 堆栈上运行一个网站,并且是管理服务器的新手。当我运行命令 top 时,它会列出几个名为 nobody 的用户访问命令 httpd。这是否与我网站上当前的访问者数量相符?

如果是这样,有时我会有 20 或 30 个“没人”访问我的网站,每个人都占用了我一定百分比的记忆。随着流量的增加,我会增加我的内存,但是有没有其他方法可以解决这个问题?(我知道这是一个广泛的问题,但我需要一些一般性建议)

谢谢

Jan*_*kel 6

不,top 代表“进程表”,将列出您机器上的进程(运行、睡眠、等待 i/o 或其他)。使用典型的 LAMP 设置,您将有几个进程等待、接受连接、处理请求并返回到某种空闲状态。因此,与“活跃用户”的数量没有直接关系。

要正确分析 apache 服务器的负载,您应该使用 apache 写入的日志(通常到 /var/log/apache,检查您的配置)。

了解正在发生的事情的起点可能是apache 文档和您的系统手册 top (man top)。可以使用mod_status获得有关您的 apache httpd 当前正在做什么的详细信息,但请确保使用一个好的密码保护状态 url。


cas*_*cas 5

到目前为止没有人回答你关于“无人”用户的问题......这里是:

当 top 列出用户名“nobody”时,它与哪个用户登录到您的网站完全无关。

top 不知道,不在乎,也无权访问有关您的网站或其拥有的用户帐户的详细信息。top 显示有关运行 unix 进程的详细信息,包括每个进程正在运行的 unix 用户 ID (uid)。

即 top 提到的“nobody”是运行 apache 进程的 Unix 用户。

大概您的系统配置为以用户 nobody 运行 apache,因为这是一个最小的特权帐户,即使有人设法破坏 apache 程序,它也无能为力。这是很正常的。某些系统以用户“apache”、“httpd”、“www-data”或其他用户名运行 apache,但以“nobody”身份运行它很好……它只是系统上的另一个 unix 用户。

除非您使用 suexec 或类似的,否则所有 apache 进程都将作为“nobody”运行,无论谁碰巧登录了您的网站。由于您在询问关于 nobody 用户是谁的问题,我认为可以安全地猜测您没有运行 suexec。


总结:这不是问题,不需要解决。