进程使用
内存泄漏
1.内存申请后一直占用不释放
内存溢出
2.申请了10M的空间,存的数据超过10M,额外占用其他内存用户空间
内存不足
3.内存耗尽了内存空间
内核参数
/proc/sys/vm/overcommit_memory #申请内存空间 0允许申请 有空间即分配 1 来者不拒,有可能超出物理内存 2 禁止超额申请,必须在当前内存空间范围内
查看进程
ps aux #查看进程
字段含义:
vsz:虚拟内存,线性内存
rss:常驻内存
进程状态
运行态:R running
就绪态:ready
睡眠态:S 可中段 interruptable D 不可中段uninterruptable
停止态:T stopped 暂停与内存 不会被调度
僵死态:Z zombie 结束进程 父进程结束前,子进程不关闭
+:前台进程
l:多线程进程
L:内存分页并带锁
N:低优先级进程
<:高优先级进程
s: session leader 子进程发起者
孤儿进程
LPC进程间通信
同一主机
1.管道文件 pipe
2.套接字 socket
3.memory-maped file 文件映射,将数据的一段映射到物理内存 ,多个进程共享这片内存
4.shm share memory 共享内存
5.signal 信号
6.Lock 对资源上锁
7.semaphore 信号量
测试管道文件
不同主机
1.RPC
2.MQ
进程优先级
renice #改变进程的优先级 -20-19 之间
性能
1.CPU
2.内存
3.磁盘
4.网络
进程工具:
1.pstree
-p 显示用户进程ID
-T 不显示线程,默认显示
-u 显示用户切换
-H pid 高亮显示
2.ps aux
ps -axo pid,cmd,%cpu,%mem --sort -%mem |head -n 12
ll /proc/901/exe #查看进程的文件路径
prtstat 进程 #查看进程的详细状态
pidof 程序名
3.uptime
13:59:15 up 15:53, 2 users, load average: 0.00, 0.00, 0.00
当前时间 启动时长 用户数 1 分钟 5 分钟 15分钟的负载情况 负载不要超过5
CPU工具:
1.mpstat 时间秒 没一秒动态观察cpu的运行
2.top 大写的M P 切换排序
3.htop
内存工具:
1.free -h
释放内存缓存 1 pagecache 数据部分 ,2 元数据 ,3
echo 1 > /proc/sys/vm/drop_caches
pmap 进程ID #进程对应的内存映射
vmstat #虚拟内存 # si so bi bo 以内存为参照物,si 从交换空间进入内存空间 ,so 从内存空间出来进入交换空间, bi 从磁盘进入内存空间 , bo 从内存出进入硬盘
统计CPU和IO
1.iostat
2.iotop
监控宽带
1.iftop
2.nethogs
监控系统资源