Linux下的数据监控工具
Vmstat
Vmstat,virtual memmory statistics(虚拟内存统计),主要是对操作系统的内存信息、进程状态、cpu活动等进行监视,但是它不能对某个进程进行深入的分析。
Procs中r列表示运行和等待CPU时间片的进程数,如果r值长期大于CPU个数,说明CPU资源不够用啦,可以适当增加CPU数量。
Procs中b列表示当前等待资源的进程数,包括等待I/O,内存等。Swpd列表示切换到内存交换区的KB数,一般si,so为0的话基本不影响系统的性能。Cache是page cache的内存数量,Linux会把空闲的物理内存的一部分拿来做文件和目录的缓存,以便提高程序执行的性能。如果cache的值较大的话,说明缓存了太多的文件,如果bi值小的话,说明文件系统效率比较高。Si是每秒从磁盘读入虚拟内存的大小,如果这个值一直大于0,表示物理内存不够用或者内存泄露了,需要查找耗内存进程解决掉。Bi,bo是表示从块设备读入数据的总量以及写到块设备的数据总量。如果bi+bo值比较大,而且wa值也比较大的话,说明系统磁盘I/O可能有问题,性能不高。
In和cs是每秒钟的设备中断数以及上下文切换数。它们很大的话,表面内核消耗的CPU时间较多。
Top
Top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。它可以按照系统中当前进程的CPU利用率以及占用的内存大小进行排序,可以比较快速定位出系统响应迟钝的原因。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。
top是一个显示数据较多的工具,第一行显示的是系统的开机运行时间,机器的CPU负载信息;第二行显示当前系统任务的总数,以及各个状态的进程数;第三行显示的是CPU资源的使用情况总览;第四行显示内存的使用情况总览;第五行显示的是内存交换区的使用情况总览;后面开始是每个进程对资源使用的情况。
Nmon
Nmon提供对CPU、内存、网络、磁盘等系统资源占用情况分析,相比其他Linux命令获取到的数据,nmon的功能更为集中、配置性更强。通过nmon采集到数据之后可以在windows系统中使用nmon_analyser做数据的展示以及分析工作,可视化效果比较好。
由于一般Linux系统都不自带nmon,使用之前需要下载安装。
Uptime
Uptime命令显示系统已经运行了多长时间,它依次显示当前时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
关于系统平均负载,它表示在特定时间间隔内运行队列中的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中:没有在等待I/O操作的结果;没有主动进入等待状态;没有被停止。
Netstat
Netstat命令可以显示本机的网络连接情况,监听端口以及路由表等各种网络相关信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
比较常用的可以用次命令查看当前开启监听的服务器进程信息以及端口信息。
Free
Free是监控Linux使用情况最常用的命令。
“Free -m”可以查看以M为单位的使用情况,这里主要观察free和cached两列。
一般来说,如果应用程序可用内存/系统物理内存>70%时,表明目前系统内存资源比较充足,不影响系统性能;如果应用程序可用内存/系统物理内存<20%时,表明目前系统内存资源比较紧缺,需要释放其他程序内存或者增加内存;如果应用程序可用内存/系统物理内存在20%-70%之间,表明目前系统的内存资源基本满足应用需求,暂时不影响系统的性能。
Sar
Sar也是一个强大的分析系统性能的工具,它可以比较全面的获取系统的CPU,运行队列,磁盘IO,分页,内存,CPU中断,网络等多项数据。
上图是使用sar获取系统CPU的整体负责情况,每隔1秒统计一次,统计3次,最后会给出3次的平均值。需要查看其他的数据可以查看手册使用。
Iostat
Iostat是I/O statistics的缩写,主要功能是对系统的磁盘I/O操作进行监控。它的输出主要显示磁盘读写操作的统计信息,同时也会给出CPU的使用情况。
这里显示的是查看CPU和磁盘的信息,统计间隔2秒,共3次。
Valgrind
Valgrind是一款广泛用于监控程序运行过程进行内存调试、内存泄漏检测以及性能分析的工具。它会给出内存泄漏的统计,包括definitely lost,indirectly lost,possibly lost,still reachable ,suppressed等,我们可以使用valgrind来测试程序中内存不规范使用的部分。同时对于地址越界问题也可以通过valgrind扫出来,它会统计invalid write的情况。
Linux下的数据监控工具的更多相关文章
- linux下的数据备份工具rsync讲解
linux下的数据备份工具 rsync(remote sync 远程同步) 名词解释: sync(Synchronize,即“同步”)为UNIX操作系统的标准系统调用,功能为将内核文件系统缓冲区的 ...
- Azure上如何在Linux下挂载数据磁盘
[原文首次发表于51cto http://cloudapps.blog.51cto.com/3136598/1653672] 在Azure上创建了虚拟机之后,我们在一些情况下会需要添加更多的数据磁盘来 ...
- linux下误删数据文件恢复
linux下文件被删除能够用非常多工具进行恢复.比如undelete(适合ext2,ext3).giis(不能恢复安装giis之前的文件).ext3grep(仅限ext3).R-linux(支持ext ...
- linux下mysql数据的导出和导入
导出整个数据库中的全部数据 1.在linux命令行下输入: mysqldump -u userName -p dabaseName > fileName.sql fileName.sql最好加上 ...
- Linux下文件完整性监控工具Tripwire详解
Tripwire 是目前最为著名的Unix下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来.当文件现在的数字签名与保留的数字签名不一致时,那么现在 ...
- Linux下安装流量监控工具iftop
在Linux系统中,top命令可以查看系统资源包括内存,CPU占用信息,查看和探测网络状态可以使用netstat,nmap等工具,实时流量监控可以使用iftop,下面是在CentOS7系列系统上安装i ...
- linux下用数据泵导入导出(impdp、expdp)
expdp和impdp expdp假设a用户的默认表空间是a,导出用户a所有数据: 如果是多实例 需要在命令行或终端手工指定实例 set ORACLE_SID=实例名 否则回报ORA-12560: T ...
- Linux下MySql数据的导入导出
1,每天4点备份mysql数据: 2,为节省空间,删除超过3个月的所有备份数据: 3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据: mysqldump -u用戶名 -p密 ...
- 在linux下进行数据备份
一.完全备份 完全备份是指把所有需要备份的数据全部备份.当然,完全备份可以备份整块硬盘.整个分区或某个具体的目录.完全备份的好处是数据恢复方便,因为所有的数据都在同一个备份中,所以只要恢复完全备份,所 ...
随机推荐
- SQLServer数据库误删数据找回
记一次SQLServer数据库误删数据找回 昨天 同事在本机清理数据库表时,连接到了生产机,误删了二十几张表,幸好是晚上加班的时候删除的,生产机上当时是一天一备份,还原备份是最后的策略,最关键的还是要 ...
- DotNetOpenAuth搭建OAuth2.0
使用DotNetOpenAuth搭建OAuth2.0授权框架 标题还是一如既往的难取. 我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案.当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物 ...
- warfare(最大生成树裸题)
战争 [问题 ...
- [google面试CTCI] 1-8.判断子字符串
[字符串与数组] Q:Assume you have a method isSubstring which checks if one word is a substring of another G ...
- HashTable类模板_C++
好久没看数据结构了,今天终于要用到hash,整理一下写了个hash类模板 template<typename T> class DataType { public: T key; Data ...
- 使用entity framework开发oracle
A.vs2010 SP1 B.ODAC(http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html) ...
- 对Conjugate Gradient 优化的简单理解
对Conjugate Gradient 优化的简单理解) 机器学习&数据挖掘笔记_12(对Conjugate Gradient 优化的简单理解) 数学优化方法在机器学习算法中至关重要,本篇博客 ...
- C# BackgroundWorker详解,图例,原理分析
先声明,大部分资料均参考网上,进行了整理. 1. 在 VS 中添加了 BackgroundWorker 组件, 该组件在多线程编程方面使用起来非常 方便,然而在开始时由于没有搞清楚它的使用机制, 走了 ...
- 开始使用THREE.JS
开始使用THREE.JS 译序 Three.js是一个伟大的开源WebGL库,WebGL允许JavaScript操作GPU,在浏览器端实现真正意义的3D.但是目前这项技术还处在发展阶段,资料极为匮乏, ...
- 一步一步深入spring(1)--搭建和测试spring的开发环境
1.引用jar包 到spring的网站上下载spring的jar包(本文是2.5.6),解压缩后找到 使用spring必须引用的jar包 spring.jar commons-logging.jar ...