ps命令 & proc文件系统

ps命令 & proc文件系统

ps
	查询所有的进程:
		ps -ef | head -1 && ps -ef | grep "进程名" 	# 显示所有的进程,显示的项目有:UID,PID,PPID,C,STIME,TTY,TIME,CMD
		或
		ps auxf | head -1 && ps auxf grep "进程名"	# 显示所有的进程,显示的项目有:USER,PID,%CPU,%MEM,VSZ,RSS,TTY,STAT,START,TIME,COMMAND

		# 参数:
			# f 用ASCII字符显示树状结构,以显示进程间的相互关系(父子关系)。
				举例:ps auxf grep "进程名" -A 10 # 查看指定进程和该进程的子进程。

			# a 显示所有用户的所有进程(包括其它用户)
		# 结果:
			# USER 	启动进程的用户
			# PID	进程ID
			# %CPU 	进程占用CPU的百分比
			# %MEM 	进程占用内存的百分比
			# VSZ	进程使用的虚拟内存量(KB)
			# RSS	进程占用的内存量(KB)
			# TTY	启动该进程的终端 (注:tty是终端设备的统称,一般:?表示不关系终端,pts/0表示通过网络连接的终端,)
			# STAT: 该进程的状态:
				R 	正在运行或在运行队列中等待
				S 	处于休眠状态
				s 	包含子进程
				l 	该进程是一个多线程进程
				< 	高优先级进程
				N 	低优先级进程
				+ 	位于后台的进程组

				D 不可中断的休眠
				T 停止
				Z 僵死
				W 无驻留页
				L 内存锁页
			# START		进程的启动时间
			# TIME		进程使用的总cpu时间
			# COMMAND	正在执行的命令行的命令

	查看指定进程下的线程:
		ps -T PID 	# 进程下的线程数:(ps -T PID | wc -l) - 1
		参数:-T Show threads, possibly with SPID column

	查看占用内存最多的进程:
		 ps aux | awk '{print "used mem "$4 " -pid "$2}' | sort -r | head -5
		

	/proc
		概念:Linux内核提供了一种通过proc文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。
		使用:ps aux | grep xxx 找到进程的PID,然后 ls -al /proc/PID 查看进程的相关信息。
		说明:
			/proc/PID/cmdline	进程的完整命令行信息
			/proc/PID/cwd		进程当前工作目录的符号链接	eg:/home/jxn/test
			/proc/PID/environ	进程的环境变量
			/proc/PID/exe		运行程序的符号链接			eg:exe -> /home/jxn/soft/java8/bin/java
			/proc/PID/status	进程的状态信息,包括:名称(Name)、父进程id(ppid)、状态(State)、线程数(Threads)、内存的使用情况(VmSize、VmRSS) 等。

									VmSize 	分配给该进程的内存大小。
									VmRSS 	该进程当前使用的物理内存大小,即该进程的常驻集合内存大小(RSS:Resident Set Size)
									VmPeak 	进程运行过程中占用内存的峰值
									说明:若进程使用之前已分配但并非正在使用的内存,则VmRSS会变大,而VmSize会保持不变。

			/proc/PID/task 		进程下的任务(线程)。统计进程的线程数:ls /proc/PID/task | wc -l

			/proc/PID/task/线程id/status 线程的状态信息,包括:名称(Name)、线程id(Pid)、进程id(Tgid)、状态(State)

		举例:
			# 查看指定进程的内存使用情况。
			pid=`ps aux | grep appName | grep -v grep | awk '{print $2}'`
			memSize=`cat /proc/${pid}/status | grep "VmRSS" | awk '{print $2}'`


	pstree
		格式:pstree 参数 PID
		参数:
			-p 显示进程id
			-a 显示命令行参数
		举例:
			pstree
			# 查看所有的进程,以树状的形式展现。

			pstree -a -p PID
			# 查看指定进程的进程树(包含PID进程和其子孙进程)。



			

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章