[[email protected] ~]$ ps aux|grep python
user 4182 0.0 0.0 9228 1080 ? Ss 02:00 0:00 /bin/sh -c cd data/trandata && /usr/local/bin/python2.7 main.py >> /dev/null 2>&1
user 4190 0.1 0.1 341108 10740 ? Sl 02:00 0:52 /usr/local/bin/python2.7 main.py
user 4205 166 1.6 1175176 129312 ? Sl 02:00 901:39 /usr/local/bin/python2.7 main.py
user 10049 0.1 0.1 435856 10712 ? Sl 10:21 0:04 /usr/local/bin/python2.7 main.py
user 10051 71.1 2.5 948248 207628 ? Sl 10:21 28:42 /usr/local/bin/python2.7 main.py
user 10052 51.9 1.9 948380 154688 ? Sl 10:21 20:57 /usr/local/bin/python2.7 main.py
user 10053 85.9 0.9 815104 76652 ? Sl 10:21 34:41 /usr/local/bin/python2.7 main.py
user 11166 0.0 0.0 103240 864 pts/1 S+ 11:01 0:00 grep python
[[email protected] ~]$ ps -ef|grep python
user 4182 4174 0 02:00 ? 00:00:00 /bin/sh -c cd /data/trandata && /usr/local/bin/python2.7 main.py >> /dev/null 2>&1
user 4190 4182 0 02:00 ? 00:00:52 /usr/local/bin/python2.7 main.py
user 4205 4190 99 02:00 ? 15:01:46 /usr/local/bin/python2.7 main.py
user 10049 1 0 10:21 ? 00:00:04 /usr/local/bin/python2.7 main.py
user 10051 10049 71 10:21 ? 00:28:47 /usr/local/bin/python2.7 main.py
user 10052 10049 51 10:21 ? 00:21:01 /usr/local/bin/python2.7 main.py
user 10053 10049 85 10:21 ? 00:34:45 /usr/local/bin/python2.7 main.py
user 11168 10904 0 11:01 pts/1 00:00:00 grep python
正如我們所看到的,我啓動了一個python進程,它會spwan多進程,並且在進程內啓動多線程,並且在線程內啓動多線程。ps aux和-ef之間的CPU使用率差異
流程樹是這樣的:
main_process
--sub_process
----線程1
------ sub_thread
------ sub_thread
------ sub_thread
------ sub_thread
----線程2
---- thread3
--sub_process
----......
畫面內時,PID-4205示出了的ps aux和ps -ef不同的CPU使用率,一個是166,而另一個是99,166在頂部-c也顯示。
我保證該PID-4205是子過程中的一個,這意味着在python它不能與GIL使用CPU的100%以上。
這就是我的問題,爲什麼ps -ef和ps aux顯示不同。
對不起,我真的不知道你的意思是先生T_T。 – Zagfai
你能澄清一下你不明白的嗎?你不明白我的例子嗎?或者你不明白它將如何應用? –
thx非常〜。 – Zagfai