linux 调优(之cpu与内存基本概念)

cpu: 时间片,time slice
优先级:
调度器:BIG O
O(1)时间复杂度
140个队列扫描每个队列的首部从高到低

0-139:用户空间级优先级,用nice调整,静态的
0-99实时优先级:动态优先级,内核会维护一个追踪进程状态的机制,它会根据每一个进程根据此前被调度的时长或者次数实时的调整优先级

memory:
虚拟地址空间
PAE:32bits 4G ,inter额外引入4bits —64G –〉每个进程任然只能使用 1G + 3G
线性地址空间依然为4G

MySQL:单进程多线程
32bits系统 MySQL 能使用2.7G内存

page frame:
线性空间映射成物理地址空间 页面—〉页框
RSS:无法映射 RSS常驻内存集
小异常:在内存里有(被其它进程引入过了)但是没有映射,修改映射
大异常:内存里面没有从磁盘加载
进程发起系统调用,触发中断,转为内核模式,最后转换为用户模式
什么是线性地址空间什么是物理地址空间:
每个进程认为自己独占了所有的内存空间,维护了一个线性的内存地址,并且进程自己会维护一个线性地址到物理地址的映射表,当cpu运行程序的时候mmu(mapping unit)单元会查询这个映射表完成线性地址与物理地址的转换(Table one per process)。
这个table是多级的 page1# page2# offset# 2的10次方hash
这里就会有大小异常

什么是copy on write:
进程开始都跟父进程使用相同的地址空间,当这个新的进程需要对这段内存空间进行写操作由于这段空间是负进程,如果它有权限写,就会进程阻塞触发保护异常(protection fault)就会进行写时复制(copy on write)

什么是共享库:
shared library is VA 共享库将两个进程当中用到的共享库只保存一份/lib64/ 或者 /lib/ 目录下以so结尾的文件 (这段代码)它们都被调用执行的代码段,如果需要处理数据一定是进程地址空间自己的数据
跟这段代码没有关系,所以不论被任何进程调用都不会有影响
什么是32bit系统的PAE:
对于32位使用pae技术,可以使用64G内存,但是对于每个进程还是 3+1 G

cpu跟外部IO设备交互方式:
poll:轮询cpu按固定时间去查看各io,忙等待,性能很差
中断:每个io设备启动时都想cpu注册一个中断号,针脚感知中断,知道那个设备,根据设备注册的ioport 就是设备注册的地址空间 ioport 16bit 65535 每个使用几个或者几十个。每个io在完成数据交换有个放数据的寄存器。
DMA:直接内存访问,某个io设备自带芯片,它有访问地址总线,控制总线,数据总线的权限,所有cpu在接到某个io设备的第一次中断后,同一个主机同一个事件把后续的操作交给了DMA去完成
32bits系统内存分配:
ZONE_DMA: 16M给DMA使用
ZONE_NORMAL:16M-896M可以被系统内核直接访问的内存地址空间
Reserved:896M-1G 12MB reserved PAE:32bits系统
ZONE_HIGHMEM:1G-64G高内存地址空间 32bits系统 不能被系统直接访问需要Reserved映射后才能访问

64bits系统内存空间分配:
ZONE_DMA:1G
ZONE_NORMAL:2-64G

大页面和透明大页面:
线性内存中:页面
物理内存中:页框

超大页表:2MB(用的比较多) 1GB是TB级内存
代码级:systemtap,profile、valgrind

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值