我的服务器可用内存越来越少,而且很多进程的命令都是在用top输入M的时候需要输入“sudo”。
我不明白根用户需要使用“sudo”。我想知道这些进程是如何生成的?我可以杀死它们吗?
Tasks: 185 total, 1 running, 184 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: 3967848k total, 3484196k used, 483652k free, 218532k buffers
Swap: 4112376k total, 0k used, 4112376k free, 2932864k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22219 mysql 20 0 582m 67m 5492 S 0.0 1.7 0:01.75 mysqld
22337 daemon 20 0 327m 31m 3440 S 0.0 0.8 0:01.58 httpd
22252 daemon 20 0 321m 26m 3416 S 0.0 0.7 0:01.25 httpd
22263 daemon 20 0 319m 23m 3396 S 0.0 0.6 0:00.71 httpd
22253 daemon 20 0 310m 18m 3444 S 0.0 0.5 0:00.69 httpd
22251 root 20 0 28392 12m 3640 S 0.0 0.3 0:00.09 httpd
2422 root 20 0 9192 3608 2184 S 0.0 0.1 0:00.32 ssh
13613 root 20 0 38220 3572 1044 S 0.0 0.1 0:22.31 rsyslogd
2423 root 20 0 11556 3420 2692 S 0.0 0.1 0:00.11 sshd
22570 root 20 0 11716 3408 2676 S 0.0 0.1 0:00.08 sshd
3351 root 20 0 10384 2540 2000 S 0.0 0.1 0:00.06 sudo
30870 root 20 0 10384 2528 2000 S 0.0 0.1 0:00.06 sudo
14356 dkim-mil 20 0 49664 2444 1468 S 0.0 0.1 0:03.91 dkim-filter
2085 root 20 0 10376 2344 1824 S 0.0 0.1 0:00.00 sudo
7741 root 20 0 10376 2344 1824 S 0.0 0.1 0:00.00 sudo
29838 root 20 0 10376 2344 1824 S 0.0 0.1 0:00.00 sudo
2006 root 20 0 10376 2340 1824 S 0.0 0.1 0:00.00 sudo
29747 root 20 0 10376 2340 1824 S 0.0 0.1 0:00.00 sudo
30602 root 20 0 10376 2340 1824 S 0.0 0.1 0:00.00 sudo
30935 root 20 0 10376 2340 1824 S 0.0 0.1 0:00.00 sudo
2259 root 20 0 10376 2336 1824 S 0.0 0.1 0:00.00 sudo
2503 root 20 0 10376 2336 1824 S 0.0 0.1 0:00.00 sudo
2515 root 20 0 10376 2336 1824 S 0.0 0.1 0:00.00 sudo
7718 root 20 0 10376 2336 1824 S 0.0 0.1 0:00.00 sudo
7745 root 20 0 10376 2336 1824 S 0.0 0.1 0:00.00 sudo
29845 root 20 0 10376 2336 1824 S 0.0 0.1 0:00.00 sudo
30172 root 20 0 10376 2336 1824 S 0.0 0.1 0:00.00 sudo
30352 root 20 0 10376 2336 1824 S 0.0 0.1 0:00.00 sudo
30548 root 20 0 10376 2336 1824 S 0.0 0.1 0:00.00 sudo
30598 root 20 0 10376 2336 1824 S 0.0 0.1 0:00.00 sudo
30897 root 20 0 10376 2336 1824 S 0.0 0.1 0:00.00 sudo
30899 root 20 0 10376 2336 1824 S 0.0 0.1 0:00.00 sudo
答案1
您需要确定是什么产生了它们,以及它们是什么,然后您才能够判断是否可以杀死它们,或者最好是首先禁止它们发生(如果没有必要的话)。
使用 ps 命令。 ps -ef
将显示进程的父进程 ID,这可能有助于确定导致进程的原因。它还将显示 STIME,即进程启动的时间,这可能有助于确定原因。 ps -ef f
将显示进程层次结构,这也可能有助于确定命令的来源。
查看 cron 日志。 /var/log/cron
在基于 RHEL 的系统上可能会显示与命令同时运行的作业。
ps auxwwe
可能会让您了解命令的来源环境,这可能会为您指明来源。
strace -fp <PID>
如果您需要查看命令在系统调用级别执行的操作,这也可能有所帮助。也许它因某些需要修复的故障而停滞。
答案2
它们root
现在可以运行,因为 sudo 已将原始用户转换为root
。
通过(例如)执行来获取进程的开始时间,ps -o lstart 29845
并在安全日志中使用 sudo 日志交叉检查其开始时间。
哦,你的可用内存仍然相当不错。检查应用程序的实际内存使用情况时,可以忽略cached
和值。buffers