进程的概念:进程与子进程的关系,其实就是父与子的关系,就像linux系统下的init进程,就是一个父进程,而init下的所有进程都是子进程,每个子进程都会有他们独立的逻辑地址空间,也就是说进程A和进程B是各自用各自的资源(比如内存)。
线程概念:线程是进程内部细分的执行单元,同一个进程下的线程之间都是共用资源的,它们共享母进程的逻辑地址空间。同一线程里的内存空间天然共享,不同进程里的线程则不共享。
线程缺点:
诸多线程是共享内存的,一旦某一个线程崩溃了,那么整个母进程也会被崩溃。
线程优点:
线程比进程耗费的内存更少,各线程间通信要比进程间通信简单的多也快的多。
5.查看linux系统中可创建的进程数实际值命令
cat /proc/sys/kernel/pid_max
6.linux系统中单个进程查询相关命令:
1.根据进程号进行查询:
pstree -p 进程号
top -Hp 进程号
2.根据进程名字进行查询:
pstree -p 'ps -e | grep server | awk '{print $1}''
pstree -p 'ps -e | grep server | awk '{print $1}'' | wc -l
3.通过进程ID查看进程信息
lsof -p $PID
4.查看某个端口由哪个进程开启
lsof -Pnl +M -i4
5.linux当前单个进程理论可以达到最多的线程数总数命令
echo "'ps -eLf |awk '{print $6}'|grep -v NLWP |xargs |sed 's/ /+/g''" |bc
6. 查看当前进程数
ps aux|grep -v 'USER'|wc -l
7.系统打开最大文件数
cat /proc/sys/fs/file-max
8.统计当前某个用户打开的文件数(包含socket数和会话数)
lsof -u username|wc -l (没有lsof需要安装命令 yum -y install lsof)
9.统计当前所有进程的文件打开数
lsof |egrep -v 'TCP|UDP'|awk '{print $8}' |sort |uniq |wc -l
10.分析当前进程打开文件数的排序并此打开文件数最多的进程打开了哪些文件。
lsof |egrep -v 'TCP|UDP'|awk '{print $2}' |sort -n |uniq -c |sort -nr |head -n1
假如结果为 125 1150,第一个数字是个数,第二个数字是pid lsof -p 1150
11.查看当前的打开最大数文件数的设置参数
cat /etc/security/limits.conf
12.查看系统占用率高的线程
ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
编辑回复