在 Fedora 11 上,我有 250 多个进程:迁移、ksoftirqd 和看门狗。
它们不占用任何 CPU 或内存资源,只是在睡觉。
那是什么?
基本上,我想阻止一些系统进程运行。如果我强制退出它们,它们只会重新启动。如何防止它们启动/重新启动。
在你说我不应该搞乱系统进程之前:我完全理解可能的后果。
有没有办法做到这一点,所以当我重新启动我的 linux 服务器时,进程将在启动时重新打开?
我正在运行 a RedHat 5.5,我想知道如何识别进程的端口。
这是输出,netstat我正在尝试查找与 port 关联的进程35670:
$ netstat -tulnp
tcp 0 0 0.0.0.0:35670 0.0.0.0:* LISTEN -
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法将相关进程获取到此端口,但无济于事:
$ lsof -nl | grep TCP
$ fuser 35670/tcp
Run Code Online (Sandbox Code Playgroud)
这最终对我有用。
$ rpcinfo -p
100021 3 tcp 35670 nlockmgr
Run Code Online (Sandbox Code Playgroud)
如果不执行上述命令,您将如何检测到该端口35670与nlockmgr.
奇怪的是nlockmgr当我这样做时没有出现:
$ ps aux
Run Code Online (Sandbox Code Playgroud) 我可以访问运行 Apache 2.2.15 和 MySQL 5.1.52 的 CentOS 6 Web 服务器(一个 PHP/MySQL 论坛)。这个盒子有双八核至强。
我发现查看 CPU 图表是前两个内核(0 和 1)达到了 90% 的使用率,而其他 14 个内核仅达到了 30-40% 的使用率。我认为 Core 8 是第二个处理器的第一个内核,使用率很高(高达 90%),但正如前面提到的,所有其他内核的使用率都很低。
Apache 启动了大约 20 个进程,我怀疑在其默认状态下,它无法理解,并且自然地利用了所有内核。这应该是我认为的内核工作(有人可以确认吗?)。然而,随着这些内核的最大化,尽管有空闲 RAM 和磁盘 I/O,但性能还是会显着下降。
有什么我可以在 Apache 中进行调整以“使其意识到”所有其他内核的东西,或者内核 peramater 将某些进程分配给某些内核?例如,我可以排除内核 0 和 1 用于 Apache 和 MySQL 吗?
我遇到了一个问题,我的一些 Ubuntu/Debian 服务器没有显示在 top 或 ps 中传递给 rake 的参数。我已经将这个问题追溯到 /proc/[pid]/cmdline 给出的输出变化。这个文件似乎控制了 ps 和 top 显示的内容。在正确显示参数的服务器上,cmdline 文件的内容类似于:
ruby^@/home/user/.rvm/gems/ree-1.8.7-2011.03/bin/rake^@log_file_tailer:run^@
Run Code Online (Sandbox Code Playgroud)
但是,在不显示 rake 参数的服务器上,cmdline 的输出看起来像
/home/user/.rvm/gems/ree-1.8.7-2011.03/bin/rake^@ ^@^@^@^@^@
Run Code Online (Sandbox Code Playgroud)
也就是说,文件的内容有两行长,但不包含任何有关传递给 rake 的参数的信息。
FWIW,我拥有的两台服务器以不太有用的格式(缺少参数的格式)输出 cmdline 正在运行
Linux 版本 2.6.32-5-amd64(Debian 2.6.32-46)(dannf@debian.org)(gcc 版本 4.3.5(Debian 4.3.5-4))#1 SMP Sun Sep 23 10:07:46 UTC 2012
和
Linux 版本 3.2.0-23-generic(buildd@crested)(gcc 版本 4.6.3(Ubuntu/Linaro 4.6.3-1ubuntu4))#36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012
有趣的是,对于我看到的除 rake 之外的大多数命令,这些服务器似乎确实正确显示了完整的命令行,包括参数。
有谁知道如何获得完整的命令行(包括参数)以输出到这些服务器上的 cmdline?我非常希望这不需要对内核进行完整的重新编译(我对此几乎没有经验)。
-- 编辑 -- 据推测是 soley rake 负责设置 /proc/[pid]/cmdline 的内容,但这与我们运行相同版本的 rake 的事实不符( 0.8.7) 在提供和不提供由 rake 调用的命令行参数的服务器上。
当我们运行 top 时,我们偶尔会看到一个正在使用 %CPU 的休眠进程“S”;我希望所有睡眠进程都使用 0% CPU,因为它们不活动。我希望只有运行“R”的进程在顶部积极消耗 %CPU。例如,查看这些休眠的 Oracle 进程
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11975 oracle 15 0 16.8g 2.6g 2.6g S 8.9 5.5 56:28.38 oracle
5837 oracle 15 0 16.8g 1.8g 1.7g S 6.6 3.7 10:04.11 oracle
12248 oracle 15 0 16.8g 1.6g 1.6g S 5.9 3.4 12:02.33 oracle
21253 oracle 15 0 16.8g 1.6g 1.6g S 4.3 3.4 12:33.83 oracle
Run Code Online (Sandbox Code Playgroud)
我的想法是,在这种情况下,对于 Oracle,CPU 活动由许多低于 Top 的 1 秒时间粒度的短脉冲组成。这意味着使用计数器已更新但 Top 没有看到“R”状态,因为它太短了。
有什么想法吗?
如果我有PID一个进程的编号(在 UNIX 机器上),我如何知道其关联进程的名称?我需要做什么?
有许多进程以假(不存在的 PID)启动。一个例子是 csrss.exe 进程。它启动了,并且分配的父进程 PID 不存在。如果您查看 procexp.exe,“Parent”被列为“(524)”(在这种情况下,524 是随机的、不存在的父 PID)。为什么要分配这些?