简单介绍Linux的内容
树图思维导图提供 互联网Linux思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 互联网Linux思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:09ff436d95579cc43f51f6e783943008
Linux思维导图模板大纲
组成
lnode:一个文件占用一个inode,记录文件属性,同时记录此文件所属的block编号
Block:记录文件的具体内容,文件太大会占用多个block
Superblock:记录文件系统的整体信息,包括inodeflblock的总量,文件系统的格式等
block bitmap:记录block是否被使用的位图
类型
Exts:要读取文件时,根据inode来查找对应的block
Fat:没有inode,每个block中存放着下一个block的编号
select
一个socket连接就会分配一个文件描述符
socket可以读写了之后会做一个标志,然后唤醒程序,select程序会遍历所有的socket
最多1024个
epoll
只把需要做处理的socket发给程序
同步
例如调用者调用了一个接口,这个接口比如要执行一些磁盘文件读写操作,或者网络通信等,
如果是同步的,则调用者需要等待这些磁盘读写操作完成后才能返回
异步
同步异步是针对接口的调用,API类库调用
异步则直接返回,也不管这个调用有没成功,接口做完了自己的事情之后,通过一些内部的
通信机制进行通知,也可以通过回调函数来通知
阻塞与非阻塞
通常是针对底层的IO操作来说的
如果采用阻塞IO的话,一旦发起请求去内核读取数据,此时内核还没有把数据从网络中读取过
来,也就是说内核还没把数据准备好,此时会阻塞,直到内核把数据准备好才返回
而非阻塞的话,如果内核没准备好数据,内核会返回一个信号给程序,告诉它数据还没准备好,
然后程序就直接返回了,过会再来询问
例如程序想要通过网络去读取数据
NIO与IO
NIO适合
监听多个连接,且数据量比较少的,例如聊天系统
区别
IO是面向流的,NIO是面向缓冲的,这意味着NIO有更大的灵活性,可以进行偏移读取等
NIO是非阻塞的,当我们去通道读取数据的时候,如果这个通道没数据,线程不会阻塞,而是
会不断轮训其他通道。而IO当我们调用read时,如果数据还没准备好,则该线程会阻幕区别
NIO有一个selector的概念,一个选择器可以监控多个通道
iostat
查看磁盘信息
命令相关
pstree -A
top
netstat
ps
ps -l查看自己的进程
ps aux查看系统所有进程
进程状态
R
D:不可中断睡眠,通常为IO操作
S:可中断阻塞,等待某个事情发生
Z:僵尸进程:进程已经终止,但是没有被回收资源
T:结束
SIGCHLD
当子进程状态改变时
得到SIGCHLD信号
waitpid()或者wait()调用返回
孤儿进程
一个父进程退出而子进程还在运行,这些进程被称为孤儿进程
孤儿进程会被init进程收养,所以不会对系统造成危害
僵尸进程
项目出问题的排除故障
pidstat命令
可以用来分析一个进程的IO,CUP,内存等情况
常用命令
pidstat -u 1: CUP
pidstat -r 1: 内存
pidstat -d 1: IO
分析Java死锁
用jsp找出对应的Java程序
用jstack查看对应的栈信息
用top和jstack命令
top直接定位进程
top -Hp pid定位哪个进程
jstack pid | grep -A 200线程id
CPU使用很高,但top却没找出来的原因有哪些
短进程太多
概括思维导图模板大纲
树图思维导图提供 Linux 网络基础知识 在线思维导图免费制作,点击“编辑”按钮,可对 Linux 网络基础知识 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:199680f0e48eac8a1aeaadb90447d4f4
树图思维导图提供 《数字教育平台开发项目策划》 在线思维导图免费制作,点击“编辑”按钮,可对 《数字教育平台开发项目策划》 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:d6437326e3e07ecf1e5e178ba84d0100