top與ps命令入門
阿新 • • 發佈:2018-12-24
背景:想了解openssh-server響應使用者的sftp連線請求時是否多程序。
實驗方法:建立了test1~4共四個使用者,同時用filezilla進行sftp連線。
現在在openssh-server所在主機上執行top,可以看到:
上圖可以看到,每個sftp連線都起了3個程序。那麼,這些程序分別跑在哪個CPU上呢?這就要用到ps命令。如下:
[email protected]:/var/log$ ps -To 'pid,lwp,psr,cmd' -p 12461 PID LWP PSR CMD 12461 12461 1 sshd: test1 [priv] zjd@ubuntu:/var/log$ ps -To 'pid,lwp,psr,cmd' -p 12463 PID LWP PSR CMD 12463 12463 1 sshd: [email protected]notty zjd@ubuntu:/var/log$ ps -To 'pid,lwp,psr,cmd' -p 12464 PID LWP PSR CMD 12464 12464 1 sshd: [email protected]sftp zjd@ubuntu:/var/log$ ps -To 'pid,lwp,psr,cmd' -p 12466 PID LWP PSR CMD12466 12466 1 sshd: test2 [priv] zjd@ubuntu:/var/log$ ps -To 'pid,lwp,psr,cmd' -p 12468 PID LWP PSR CMD 12468 12468 0 sshd: [email protected]notty zjd@ubuntu:/var/log$ ps -To 'pid,lwp,psr,cmd' -p 12469 PID LWP PSR CMD 12469 12469 0 sshd: [email protected]sftp zjd@ubuntu:/var/log$ ps -To 'pid,lwp,psr,cmd' -p 12470 PID LWP PSR CMD12470 12470 0 sshd: test3 [priv] zjd@ubuntu:/var/log$ ps -To 'pid,lwp,psr,cmd' -p 12472 PID LWP PSR CMD 12472 12472 0 sshd: [email protected]notty zjd@ubuntu:/var/log$ ps -To 'pid,lwp,psr,cmd' -p 12473 PID LWP PSR CMD 12473 12473 1 sshd: [email protected]sftp zjd@ubuntu:/var/log$ ps -To 'pid,lwp,psr,cmd' -p 12474 PID LWP PSR CMD 12474 12474 1 sshd: test4 [priv] zjd@ubuntu:/var/log$ ps -To 'pid,lwp,psr,cmd' -p 12476 PID LWP PSR CMD 12476 12476 0 sshd: [email protected]notty zjd@ubuntu:/var/log$ ps -To 'pid,lwp,psr,cmd' -p 12477 PID LWP PSR CMD 12477 12477 0 sshd: [email protected]
上面看到的PSR就是CPU編號。我實驗的這個主機的CPU只有2核,因此可以看出上面這些程序分別跑在核0和核1上。
更進一步,將測試用的主機改為4核。
檢視物理CPU個數:
[email protected]:~$ cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
2
檢視每個物理CPU的核數:
[email protected]:~$ cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores : 2
檢視邏輯CPU個數:
[email protected]:~$ cat /proc/cpuinfo| grep "processor"| wc -l
4
檢視CPU型號:
[email protected]:~$ cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
4 Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
top如下:
然後用ps分別檢視每個進行跑在哪個CPU核上:
[email protected]:~$ ps -To 'pid,lwp,psr,cmd' -p 953 PID LWP PSR CMD 953 953 1 sshd: test4 [priv] zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 955 PID LWP PSR CMD 955 955 3 /lib/systemd/systemd --user zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 956 PID LWP PSR CMD 956 956 1 (sd-pam) zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 976 PID LWP PSR CMD 976 976 2 sshd: [email protected]notty zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 977 PID LWP PSR CMD 977 977 3 sshd: [email protected]sftp zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 978 PID LWP PSR CMD 978 978 3 sshd: test3 [priv] zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 980 PID LWP PSR CMD 980 980 0 /lib/systemd/systemd --user zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 981 PID LWP PSR CMD 981 981 0 (sd-pam) zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 1001 PID LWP PSR CMD 1001 1001 0 sshd: [email protected]notty zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 1002 PID LWP PSR CMD 1002 1002 1 sshd: [email protected]sftp zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 1003 PID LWP PSR CMD 1003 1003 3 sshd: test2 [priv] zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 1005 PID LWP PSR CMD 1005 1005 3 /lib/systemd/systemd --user zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 1006 PID LWP PSR CMD 1006 1006 3 (sd-pam) zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 1027 PID LWP PSR CMD 1027 1027 2 sshd: [email protected]notty zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 1028 PID LWP PSR CMD 1028 1028 3 sshd: [email protected]sftp zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 1029 PID LWP PSR CMD 1029 1029 2 sshd: test1 [priv] zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 1031 PID LWP PSR CMD 1031 1031 3 /lib/systemd/systemd --user zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 1033 PID LWP PSR CMD 1033 1033 2 (sd-pam) zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 1053 PID LWP PSR CMD 1053 1053 2 sshd: [email protected]notty zjd@ubuntu:~$ ps -To 'pid,lwp,psr,cmd' -p 1054 PID LWP PSR CMD 1054 1054 3 sshd: [email protected]
OK,方向了,0~3共4個核都用上了。