[[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
우리가 보는 것처럼, 나는 다중 프로세스를 spwan 할 파이썬 프로세스를 시작하고 프로세스 내부에서 다중 스레드가 시작되고 스레드 내부에서 다중 스레드가 시작됩니다. 이 같은ps aux와 -ef 사이의 CPU 사용량 차이
프로세스 트리 :
main_process
--sub_process
---- thread1
------ sub_thread
------ sub_thread
------ sub_thread
------ sub_thread
thread2 ---- ---- thread3
--sub_process ----...... 01, 그림 내에서 pid-4205는 ps aux와 ps -ef에서 다른 CPU 사용법을 보여 주며, 하나는 166이고 다른 하나는 99입니다.
그리고 pid-4205는 하위 프로세스 중 하나이므로 python에서 GIL을 사용하는 CPU의 100 % 이상을 사용할 수 없다는 것을 의미합니다.
이것이 내 질문입니다. 왜 ps -ef와 ps aux가 차이점을 보입니까?
죄송합니다. 저는 T_T이 무슨 뜻인지 정말 모르겠습니다. – Zagfai
당신이 이해하지 못하는 것이 무엇인지 명확히 할 수 있습니까? 내 모범을 이해하지 못하니? 아니면 어떻게 적용 할 지 이해하지 못합니까? –
thx 대단히 ~. – Zagfai