Linux服务器监控性能测试
1.进程与线程的定义与区别
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位[例如电脑上的不同程序]
线程是进程的一个实体,是cpu调度和分派的基本单位,它是比进程更小的能够独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,一个线程可以创建和撤销另一个线程
区别:
一个线程只能属于一个进程,而一个进程可以拥有多个线程
线程是进程工作的最小但闻
一个进程会分配一个地址空间,进程与线程之间不共享地址空间,即不共享内存
同一个进程下的不同的多个线程,共享父进程的地址空间
线程在执行过程中,需要协作同步,不同进程的线程间要利用消息通信的办法实现同步
线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
2.进程的优点与缺点
优点:
每个进程互相独立,不影响主程序的稳定性,子进程奔溃不影响其他进程
通过增加cpu,就可以扩充性能
可以尽量减少线程的加锁与解锁的影响,极大的提高了性能
缺点:
逻辑控制复杂,需要和主程序交互
多进程调度开销大
3.线程的优点与缺点
优点:
程序逻辑和控制方式简单
所有线程可以直接共享内存和变量等
线程方式消耗的总资源比进程方式少
缺点:
每个线程与主程序共用地址空间,最大内存地址受限
线程之间的同步和加锁不易控制
一个线程的崩溃可能影响到整个程序的稳定性
4.top说明
在单核cpu中load average的值为1时表示满负荷状态,同理在多核cpu中满负荷的load average的值为1*cpu核数
top中的load average:系统的运行队列的平均利用率,也可以认为是可运行进程的平均数,三个值分别表示在最后的1分钟,5分钟,15分钟的平均负载值
top命令的使用:
启动top之后:
按M根据驻留内存大小进行排序
按P根据cpu使用百分比大小进行排序
参数:
-d:设置top的显示间隔(以秒计)
-n:设置top退出前迭代的次数
-p:设置监控指定的PID
-b:设置批处理模式来启动top命令,当你想要在文件中保存输出时是很有用的
5.vmstat的使用
可以监控操作系统的进程状态,内存,虚拟内存,磁盘IO,cpu的信息。语法vmstat [-a][-n][-S unit][delay[count]]
6.netstat命令
用于显示与ip,tcp,udp和icmp协议相关的统计数据,一般用于检验本机各端口的网络连接情况
参数说明:
-n:拒绝显示别名,能显示数字的全部转化成数字
-l:仅列出有在listen(监听)的服务状态
-p:显示建立相关链接的程序名
-t:显示tcp相关选项
-u:仅显示udp相关选项
-i:显示自动匹配接口的信息
-c:每隔一个固定的时间,执行该netstat命令