我正在 ubuntu 上运行 Rails 堆栈。
当我 ps -AF 时,我得到了一个由 apache 模块设置的描述性进程名称,例如
00:00:43 Rails: /var/www...
这对于诊断负载问题非常有帮助。
但是当我登顶时,同样的过程简单地显示为
ruby
有没有办法让 ps -AF 进程名称在顶部?
$ ps | grep django
28006 ttys004 0:01.12 /usr/bin/python bin/django celeryd --beat
51393 ttys005 0:01.45 /usr/bin/python bin/django celeryd -l INFO
51472 ttys005 0:01.29 /usr/bin/python bin/django celeryd -l INFO
51510 ttys005 0:01.89 /usr/bin/python bin/django celeryd -l INFO
51801 ttys005 0:01.83 /usr/bin/python bin/django celeryd -l INFO
53470 ttys005 0:03.97 /usr/bin/python bin/django celeryd -l INFO
53780 ttys005 0:00.00 grep django
Run Code Online (Sandbox Code Playgroud)
有没有办法防止报告最后一个进程(即与我的 ps 命令同时启动的 grep)?
(我开始尝试想出一个匹配文字但不匹配自身的正则表达式,但这似乎,嗯,不是正确的方法......)
我运行这个命令并得到了这个结果,但无法理解我应该杀死哪个节点实例的结果
ps ax | grep node
23308 pts/3 S+ 0:00 sudo node index.js
23310 pts/3 Sl+ 0:00 node index.js
23568 pts/1 T 0:00 sudo node index.js
23824 pts/4 S+ 0:00 sudo node index.js
23826 pts/4 Sl+ 0:00 node index.js
24202 pts/5 R+ 0:00 grep --color=auto node
Run Code Online (Sandbox Code Playgroud)
什么 S+ Sl+ T, R + Means .?
使用 ps,我可以看到大小、vsize(与 top 的 VIRT 相同?)和 rss(与 top 的 RES 相同?)。(我在上面看到的另一个是 SHR。)
有人可以为我总结这些不同领域的含义吗?
有时一个过程来来去去的速度比我快ps aux
,我试过,watch -d -n0.1 "ps aux | tail"
但又一次,限制在 1/10 秒。我真正想要的是运行一个命令并在所有新进程产生时跟踪它们,每行一个。即使是运行速度很快的进程。我知道strace
有与此类似的能力,但我无法让它做我想做的事。
tl;dr
: 有没有办法记录所有新进程?
我不想知道太多,不超过一行ps aux
会给我,对于目前的情况,我只有一个由另一个产生并消失的进程,我希望能够运行它,但我不知道命令是什么。即使知道新的 PID 就足够了,因为我可以想出一个脚本来获取这些并ps | grep
在这些上运行并在进程运行时为我提供更多信息(假设希望进程在运行时仍然存在ps
)
ps 输出的进程的 D、Ds 和 D+ 状态之间是否有任何区别
$ ps -e -o pid,stat,comm,wchan=WIDE-WCHAN-COLUMN | grep D
PID STAT COMMAND WIDE-WCHAN-COLUMN
12987 D+ du o2net_send_message_vec
Run Code Online (Sandbox Code Playgroud)
我知道 D 代表磁盘睡眠。想知道 D+、Ds 以及它们代表什么?
我们使用 ps -aux 来找出 tomcat 进程何时占用高 CPU 使用率,如果是这样,我们将向 Group 发送警报。但有时 %CPU 显示超过 100,但我们的应用程序运行良好。这是不好的迹象还是我们的理解是否正确 fins CPU 使用率对进程
这是我执行命令时的输出,
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 16228 106 24.0 2399428 1840576 ? Sl 07:11 171:35 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat-rc-core-v1-inst01/conf/logging.properties -Dj
Run Code Online (Sandbox Code Playgroud) 跑步后
ps aux
Run Code Online (Sandbox Code Playgroud)
命令我看到这一行
500 23931 0.0 0.6 63764 6880 ? S 08:49 0:01 /usr/sbin/sw-cp-serverd -f /etc/sw-cp-server/config
Run Code Online (Sandbox Code Playgroud)
我是整个 vps 管理的初学者,所以我问我是否应该担心?
这些flush
过程是什么?
$ ps aux | grep flush
root 710 0.0 0.0 0 0 ? S 2012 2:29 [flush-202:1]
root 10732 6.2 0.0 0 0 ? S Apr14 453:33 [flush-202:80]
ubuntu 24009 0.0 0.0 8080 900 pts/3 S+ 06:26 0:00 grep --color=auto flush
Run Code Online (Sandbox Code Playgroud)
我注意到这个flush-202:80
过程经常跳到top
. 这是在运行 Apache、MySQL 和 Solr 进程的 Ubuntu Server 12.04 上。谷歌搜索这个主题,我发现了另一篇 SF 帖子,其中提到这些进程不应该消耗太多 CPU。那篇文章中提出的解决方案提到了重新启动系统,这正是我开始四处top
探索并首先发现进程的方式:系统不会重新启动。
我知道如果一个进程进入D
状态则意味着它处于不可中断状态。该进程不能被任何信号杀死。它只会在重新启动或 I/O 等待结束时退出该状态。
我有很多进程处于D
状态,这表明我的机器有问题。即使重新启动后,它们也会回到D
状态。我在网上搜索并发现wchan
ps 输出中的部分告诉我的进程正在等待内核中的什么内容。
当我使用这个命令时,ps axl| grep D
我进入-
了 wchan 专栏,并且网上没有解释这是什么意思。
这是我的上述命令的示例输出。
0 0 69970 1 20 0 25064 1088 - D ? 0:00 ls -l
Run Code Online (Sandbox Code Playgroud)
我无法理解-
上面输出的含义。