标签: process

睡眠进程太多?

我在云 VPS (Xen) 上运行 Debian Lenny (x86_64),top命令告诉我有 210 个进程正在运行,209 个进程正在休眠:

top - 14:49:29 up 15:18,  1 user,  load average: 0.09, 0.11, 0.05
Tasks: 210 total,   1 running, 209 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    532288k total,   437316k used,    94972k free,    30584k buffers
Swap:  1048568k total,      408k used,  1048160k free,   219772k cached
Run Code Online (Sandbox Code Playgroud)

这是ps aux命令给我的:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 …
Run Code Online (Sandbox Code Playgroud)

process debian-lenny

6
推荐指数
1
解决办法
2万
查看次数

为什么有这么多进程在运行?

我使用 Ubuntu 8.04、Nginx、Passenger、Mysql、RVM 在 VPS 上托管了几个 Rails 应用程序,所以所有常见的嫌疑人。

在过去的日子里,这是我第一次真正必须调试问题并查看正在运行的进程。我可以使用passenger-status 和passenger-memory-stats 来解决这个问题,但是我对正在运行的进程数量感到很困惑,无法弄清楚。

看看这个截图,例如:http : //screencast.com/t/wUMrmy5iQPQi(取自 htop)

它显示了许多 Hudson 进程(Hudson 是我在那台机器上运行的 CI 服务器)。

我的问题是:

  • 为什么有 34 个?
  • 它们都是独立的进程吗?
  • 是否应该有 34 个或其中一些过时的孤立​​进程在重新启动时没有正确关闭,我应该杀死哪些进程?

linux ubuntu java process

6
推荐指数
1
解决办法
7071
查看次数

如何将进程移至核心或将进程专用于处理器?

我有一个英特尔 E5620 处理器。我已经用来cat /proc/[pid]/stat确定进程上次运行在哪个处理器上(第 39 个字段)。我如何确保一个进程专用于处理器(我有 8 个可用)或者更好,我如何才能将一个进程专用于一个核心(我有 4 个)?

multi-core rhel5 process

6
推荐指数
2
解决办法
4737
查看次数

在linux中查找进程的页面大小和页面数

给定在 Linux(最新内核)中运行的进程的 PID,我如何找出:

  1. 它使用的页数
  2. 它使用的每个页面的大小(4K、2MB 或 1GB)

这是针对 x86-64 架构的。

linux unix process

6
推荐指数
1
解决办法
1万
查看次数

SSSD 进程不会死

感谢您花时间检查我的问题。

我目前正在处理一个以前只出现过一次的问题。回到 1 月 3 日,当它第一次出现时,我们能够重新启动服务器,一切似乎都很好,但现在又回来了。这是一个生产数据库系统,因此有时很难找到重新启动的窗口。我希望在我们几天后再次重新启动以提供另一个临时解决方案之前,能够牢牢掌握这次可能发生的实际情况。开始了...

相关系统的用户身份验证通过 Red Hat Directory Server 9 使用 LDAP 处理。下面描述的问题仅在这台服务器上出现,即使是共享数据库的对应服务器也不会显示相同的症状。截至目前,没有任何 LDAP 帐户能够进行身份验证并登录到服务器。LDAP 身份验证正在由 SSSD 处理,目前无法停止或重新启动。尝试执行任一操作时,SSH 控制台都没有响应。(ctrl-c 无法退出发出的命令)

PS 显示通常的 sssd 相关进程正在运行,但kill -9对它们的尝试似乎并没有成功阻止它们中的任何一个。

ps aux | grep sss | grep -v grep
root      1150  0.0  0.0 150828  2908 ?        D    09:05   0:00 /usr/libexec/sssd/sssd_nss -d 0 --debug-to-files
root      7025  0.0  0.0  93616  2504 pts/2    D    16:18   0:00 /usr/sbin/sssd -f -D
root     11148  0.0  0.0 179436  5672 ?        D    Jan08  16:22 /usr/libexec/sssd/sssd_be -d 0 --debug-to-files --domain …
Run Code Online (Sandbox Code Playgroud)

linux ldap kill process sssd

6
推荐指数
1
解决办法
1918
查看次数

ps 输出中的 Wchan 部分未显示任何内容

我知道如果一个进程进入D状态则意味着它处于不可中断状态。该进程不能被任何信号杀死。它只会在重新启动或 I/O 等待结束时退出该状态。

我有很多进程处于D状态,这表明我的机器有问题。即使重新启动后,它们也会回到D状态。我在网上搜索并发现wchanps 输出中的部分告诉我的进程正在等待内核中的什么内容。

当我使用这个命令时,ps axl| grep D我进入-了 wchan 专栏,并且网上没有解释这是什么意思。

这是我的上述命令的示例输出。

0     0  69970      1  20   0  25064  1088 -      D    ?          0:00 ls -l
Run Code Online (Sandbox Code Playgroud)

我无法理解-上面输出的含义。

linux kernel process ps

6
推荐指数
1
解决办法
2738
查看次数

将基于进程的 IP 流量路由到不同的默认路由/接口

我试图确定是否可以通过特定接口有选择地从进程或进程组路由 IP 数据包,而所有其他数据包都通过另一个接口路由。也就是说,我希望所有流量/usr/bin/testapp都通过,eth1而所有其他数据包通过eth0。这种情况下的数据包可以是 TCP、UDP、ICMP 等,并且可以由最终用户配置为使用各种端口。

因为我无法轻松地强制相关进程绑定到特定接口,所以我试图通过路由实现相同的结果。这可能吗?

- - 编辑 - -

通过这里和其他许多地方的一个有用建议,是基于 UID 标记数据包;这并不是真正的目标。目标是基于 process 标记/过滤/路由,而不管 user。也就是说,如果说了,alicebobcharlie所有运行自己的实例/usr/bin/testapp; 来自所有三个实例的所有数据包都应该通过,eth1而来自系统的所有其他数据包都应该通过eth0

请注意,通过源/目标端口、用户名/UID 等进行标记是不够的,因为不同的用户可能会运行testapp并且他们可能会自行设置不同的端口~/.config/testapp.conf或其他任何内容。问题是关于按流程过滤。

一个可用的选项,尽管我不知道它有多大帮助,是/bin/(ba|z)?sh在本机二进制文件周围使用基于 -based 的包装器。

- - 编辑 - -

我指的是在运行现代 Linux 内核(例如 4.0 或更高版本)的系统上进行路由。如果有软件依赖性超越iproute2nftablesconntrack和类似的工具,我愿意探索开源解决方案,但基本工具是优选的。

linux routing iptables process conntrack

6
推荐指数
1
解决办法
7819
查看次数

如何查找过去一次正在运行的进程?

我被要求调查今天早上发生的高 CPU 使用率警报。我使用sar -p并看到当时出现的高CPU使用率

接下来我曾经ps -eo pcpu,pid,user,args | sort -r -k1 | less列出了这个时间前 10 名的内存猪

现在我如何找出早上那个特定时间导致瓶颈的进程。我是一名 Java 开发人员,而不是 Linux 专家。

甚至有可能吗?

linux process cpu-usage sar

6
推荐指数
1
解决办法
3万
查看次数

什么是“中断”进程,为什么它如此喜欢我的 CPU?

我在 Intel Core Duo 2GHz 上安装了 Windows XP SP3。根据 Process Explorer 的说法,“中断”进程持续占用 30-40% 的 CPU。正常吗?

windows-xp central-processing-unit process interrupts

5
推荐指数
1
解决办法
1万
查看次数

如何在服务器重新启动/进程退出时自动重新启动进程?

在我的 Ubuntu 服务器上,我使用God来监控一些 Ruby 进程/脚本,包括一个队列系统。

上帝会自动检查我的进程之一何时存在并重新启动它。它还跟踪内存使用情况,并在触发特定条件时正确操作。今天我重新启动了服务器,过了一会儿我发现我的队列不起作用。快速检查后,我发现服务器重启后上帝没有重启(我认为应该)。

确保上帝(或通用进程)在服务器重新启动时或进程因任何原因被终止时自动重新启动的最佳方法是什么?

我用来启动 God 的具体命令是

god -c config
Run Code Online (Sandbox Code Playgroud)

linux ubuntu daemon process

5
推荐指数
1
解决办法
2万
查看次数