Linux 시스템 개발자로서 프로세스 정지, 애플리케이션 무응답 등의 문제에 직면했지만 이를 효과적으로 분석하고 처리하는 방법을 모르셨던 적이 있으신가요? 그렇다면 제대로 찾아오셨습니다! 이 기사에서는 프로세스 운영 메커니즘을 더 깊이 이해하고 문제를 효과적으로 발견하고 해결하는 데 도움이 되는 Linux에서의 프로세스 분석 기술을 소개합니다.
1.PS란?
프로세스를 모니터링하고 제어하려면 먼저 현재 프로세스의 상황을 이해해야 합니다. 즉, 현재 프로세스를 살펴봐야 합니다. ps 명령은 가장 기본적인 프로세스 보기 명령입니다. 이 명령을 사용하면 어떤 프로세스가 실행 중인지, 해당 프로세스의 실행 상태, 프로세스가 종료되었는지, 프로세스에 좀비가 있는지, 어떤 프로세스가 너무 많은 리소스를 점유하고 있는지 등을 확인할 수 있습니다. 간단히 말해서, 이 명령을 실행하면 대부분의 정보를 얻을 수 있습니다. 명령.
ps는 즉각적인 프로세스의 상태를 표시하며 동적이거나 연속적이지 않습니다. 프로세스를 실시간으로 모니터링하려면 top 명령을 사용해야 합니다.
기본 매개변수:
-A: 모든 프로세스가 표시되며, 이는 -e
와 동일한 효과를 갖습니다.-a: 다른 사용자의 프로세스를 포함하여 현재 터미널의 모든 프로세스를 표시합니다.
-u: 사용자 중심 프로세스 상태x: 일반적으로 더 완전한 정보를 나열하기 위해 a 매개변수와 함께 사용됩니다.
출력 형식 계획:
l: PID 정보를 더 길고 자세하게 나열합니다.j: 작업 형식
-f: 더욱 완전한 출력을 만듭니다.
아래 명령을 연습하여 다양한 매개변수가 어떤 영향을 미치는지 살펴보겠습니다.
2. 매개변수 없이 ps 명령을 실행하면 어떤 결과가 출력되나요?
이것은 기본적인 ps 사용법입니다. 콘솔에서 이 명령을 실행하고 결과를 살펴보겠습니다.
PID: 실행 명령의 프로세스 번호(CMD)
TTY: 명령어가 실행되는 위치(터미널)
TIME: 실행 명령이 차지하는 CPU 처리 시간
CMD: 이 프로세스에서 실행하는 명령
정보는 정렬되지 않은 상태로 표시됩니다.
3. 현재 프로세스를 모두 표시하는 방법은 무엇입니까?
-a 매개변수를 사용하세요. -a는 모두를 나타냅니다. 동시에 x 매개변수를 추가하면 터미널을 제어하지 않는 프로세스가 표시됩니다.으아악
4. 프로세스 사용자에 따라 정보를 필터링하는 방법은 무엇입니까?
특정 사용자 프로세스를 확인해야 할 경우 -u 매개변수를 사용할 수 있습니다. 예를 들어 'pungki' 사용자의 프로세스를 보려면 다음 명령을 사용할 수 있습니다.으아악
5. CPU 및 메모리 사용량을 기준으로 프로세스를 필터링하는 방법은 무엇입니까?
CPU 또는 메모리 사용량을 기준으로 결과를 필터링하여 어떤 프로세스가 리소스를 차지하고 있는지 확인할 수 있습니다. 이를 위해 aux 매개변수를 사용하여 포괄적인 정보를 표시할 수 있습니다:으아악
결과가 길면 파이프와 더 적은 명령을 사용하여 필터링할 수 있습니다.기본 결과 집합은 정렬되지 않은 상태입니다. 정렬은 –sort 명령을 사용하여 수행할 수 있습니다.
5.1 CPU 사용량에 따라 오름차순으로 정렬 으아악
5.2 메모리 사용량에 따라 오름차순으로 정렬 으아악
5.3 또한 이를 하나의 명령으로 결합하고 상위 10개 결과를 파이프할 수도 있습니다. 으아악
6. 프로세스 이름과 PID로 필터링하는 방법은 무엇입니까?
-C 매개변수를 사용하고 그 뒤에 찾고 있는 프로세스 이름을 입력하세요. 예를 들어 getty라는 프로세스에 대한 정보를 표시하려면 다음 명령을 사용할 수 있습니다.으아악
더 자세한 내용을 보려면 -f 매개변수를 사용하여 형식화된 정보 목록을 볼 수 있습니다.으아악
7. 스레드를 기반으로 프로세스를 필터링하는 방법은 무엇입니까?
특정 프로세스의 스레드를 알고 싶다면 -L 매개변수와 특정 PID를 사용할 수 있습니다.으아악
8. 프로세스를 나무 모양으로 표시하는 방법은 무엇인가요?
때때로 프로세스를 트리 구조로 표시하고 싶을 때 -axjf 매개변수를 사용할 수 있습니다.
$ ps -axjf
或者可以使用另一个命令。
$ pstree
9. 如何显示安全信息?
如果想要查看现在有谁登入了你的服务器。可以使用ps命令加上相关参数:
$ ps -eo pid,user,args
参数 -e 显示所有进程信息,-o 参数控制输出。Pid,User 和 Args参数显示PID,运行应用的用户和该应用。
能够与 -e 参数 一起使用的关键字是args, cmd, comm, command, fname, ucmd, ucomm, lstart, bsdstart 和 start。
10. 如何格式化输出root用户(真实的或有效的UID)创建的进程?
系统管理员想要查看由root用户运行的进程和这个进程的其他相关信息时,可以通过下面的命令:
$ ps -U root -u root u
-U 参数按真实用户ID(RUID)筛选进程,它会从用户列表中选择真实用户名或 ID。真实用户即实际创建该进程的用户。
-u 参数用来筛选有效用户ID(EUID)。
最后的 u 参数用来决定以针对用户的格式输出,由User, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME 和 COMMAND这几列组成。
这里有上面的命令的输出结果:
11. 如何使用PS实时监控进程状态?
ps 命令会显示你系统当前的进程状态,但是这个结果是静态的。
当有一种情况,我们需要像上面第四点中提到的通过CPU和内存的使用率来筛选进程,并且我们希望结果能够每秒刷新一次。为此,我们可以将ps命令和watch命令结合起来。
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’
如果输出太长,我们也可以限制它,比如前20条,我们可以使用 head 命令来做到。
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’
这里的动态查看并不像top或者htop命令一样。但是使用ps的好处是你能够定义显示的字段,你能够选择你想查看的字段。
举个例子,如果你只需要看名为’pungki’用户的信息,你可以使用下面的命令:
$ watch -n 1 ‘ps -aux -U pungki u --sort -pmem, -pcpu | head 20’
12. 最后
你也许每天都会使用ps命令来监控你的Linux系统。但是事实上,你可以通过ps命令的参数来生成各种你需要的报表。
ps命令的另一个优势是ps是各种 Linux系统都默认安装的,因此你只要用就行了。不要忘了通过 man ps来查看更多的参数。
通过本文,我们已经学习了Linux下的进程分析技术,理解了进程的运行机制和调度方法,并且掌握了一些常见的进程分析工具和技巧。进程是Linux系统中非常重要的概念和组成部分,良好的进程分析技术可以帮助我们快速定位和解决问题,提高系统的运行效率和稳定性。希望本文能够对你有所启发和帮助,让你更加深入地了解进程分析领域,在职业发展中更上一层楼!
위 내용은 Linux에서의 프로세스 분석 기술에 대한 심층 탐구!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!