我的热门信息...
top - 16:02:16 up 461 days, 20:32, 1 user, load average: 4.12, 4.10, 4.22
Tasks: 273 total, 5 running, 267 sleeping, 0 stopped, 1 zombie
Cpu0 : 0.7%us, 0.3%sy, 99.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.0%us, 0.3%sy, 99.7%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.3%us, 0.3%sy, 99.3%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.3%us, 0.3%sy, 99.3%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16463796k total, 14791704k used, 1672092k free, 242224k buffers
Swap: 8388604k total, 1076164k used, 7312440k free, 11015344k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7520 username 39 19 90992 1880 1864 R 99.6 0.0 4563:36 ftp
7670 username 39 19 90992 1512 1496 R 98.9 0.0 8562:36 ftp
9926 username 39 19 90992 1532 1516 R 98.9 0.0 8548:47 ftp
14414 username 39 19 90992 1528 1512 R 98.9 0.0 8662:33 ftp
30987 username2 20 0 4796m 803m 11m S 1.0 5.0 9:06.95 java
2060 username2 20 0 3608m 1.2g 2480 S 0.3 7.8 6025:29 java
CentOS release 6.9 (Final)
LSB_VERSION=base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
如果我在 top 中关闭空闲进程,则显示的唯一进程是 ftp 和 top 本身。
所有其他非 ftp 进程的 CPU 利用率均低于百分之一。
ftp 进程的 tcpdump 和 strace 不显示活动。
看起来这意味着 4 个 cpu 的四个 ftp 进程都使用了少量的 %us 用户空间时间,这四个 ftp 进程都很好,所以它显示为 99 %ni,这意味着使用的少量用户空间时间几乎都是很好的。没有空闲时间 %id 因为那些 ftp 进程正在执行某物。
我读的这些数字正确吗?
Linux 的 ftp 进程是否繁忙空任务?
答案1
这不是对您的具体问题的答案,ftp
而是更一般的答案。
strace
是系统跟踪的缩写。它仅跟踪系统调用和信号。
所以这会占用一个 CPU 线程,但strace
不会显示任何内容,因为它不进行系统调用:
perl -e 'while(1){}'
这不是正常的等待方式。通常,您可以使用sleep
或阻塞 I/O,这两者都不占用 CPU 时间。
答案2
这些ftp
进程可能是多线程的,您只能看到第一个线程的详细信息。
如果您的 top 版本与我的机器上的版本类似,则按H
将切换线程显示,并且您将看到线程的其他详细信息。
我的猜测strace 输出显示 ftp 进程在等待工作线程时被 futex 系统调用阻塞(还有其他可能性,包括 read 和 nanosleep)。我还猜测这些进程与文件传输协议无关,而是进行加密硬币挖掘,尽管这一点不太确定。
ftp进程是不是忙于 Linux 空任务,无法合理解释这意味着什么。