Hi,大家好我是tom,I am back.今天要给大家讲讲linux系统一些性能相关命令。

1.fdisk 磁盘管理

是一个强大的危险命令,所有涉及磁盘的操作都由该命令完成,包括:新增磁盘、增删改磁盘分区等。

1.fdisk -l 查看磁盘分区情况

Disk /dev/sda: 27.8 GB, 27896315904 bytes

255 heads, 63 sectors/track, 3391 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1        3260    26185918+  83  Linux

/dev/sda2            3261        3391     1052257+  82  Linux swap / Solaris

可以看到,该机器上的硬盘只有一块,命名为/dev/sda,可用27.8G。在fdisk中以柱面为单位计数,该硬盘被分为3391个柱面,每个柱面8225280bytes。(现代硬盘容量超大,导致fdisk运算失准,虽然最后计算的数值是准确的,但是磁头(heads)、分段(sectors)都是不准确的,准确的是柱面数量。)

该磁盘分为两个分区,第一个分区从第一个柱面开始到第3260个柱面结束,占据26185918个数据块,为linux分区……这样的信息在某些紧急情况下是有用的。

2.df -h 查看分区使用情况

-h参数是以人类可理解方式显示磁盘空间。第一列为分区,第二列为分区大小,第三列为使用量,第四列为剩余量,第五列为使用百分比,最后是挂载点。一目了然,反应磁盘使用情况。

其中tmpfs是个特殊分区,可以理解为2.6内核带来的新特性,更高效率的使用内存和虚拟空间的技术。系统偶尔用到,某些特殊应用有需求,比如:oracle。

3.du -h filename显示文件目录大小命令,这里h参数代表以人性化的方式展示

du -sh filename 对于目录,不加-s参数会将目录下所有目录依次列出。加了-s参数后仅仅显示目标目录的大小。

经典用法,du –sk *|sort –nr。看看哪个目录占空间大

4.free命令查看当前内存使用情况

如上图所示,free命令可以显示当前内存使用情况。

Linux有一个特性,被命令执行过的目录结构会暂时存放在buffer中,系统中打开过的文档内容暂时存放在cache中。这两个类似缓存的内容都放在内存中,如果内存没有使用满,则不会释放,当内存不足时,立刻释放。也就是说,查看linux内存是否大量使用,实际上不是看的第一行的used和free,而是看第二行,used减去buffers、cached以后和free加上buffers、cached以后的空间。可以用多次执行ls /dev做实验,验证cache的作用;可以多次man kill做实验,验证buffers。

5.uptime查看cpu load情况

load average:平均负载,被定义为在特定时间间隔内(一个cpu周期)运行队列中的平均进程数。这个数值关系到cpu是否还能胜任。分为1分钟平均值、5分钟平均值和15分钟平均值三个数值。

[root@localhost home]# uptime

11:27:09 up 17:55,  3 users,  load average: 0.49, 0.40, 0.37

机器允许突发时间的处理,也就是1分钟load很高,5分钟load较高,15分钟load起伏不大的情况下,说明该次高load为突发情况,可以容忍。但是如果高load持续,导致5分钟和15分钟load都已经超过报警值,这时候需要考虑进行处理。如果15分钟load高于1分钟load,说明高load情况已经得到缓解。

6.vmstat是一个常用的运维命令,可以从进程数(load)、内存、swap、cpu使用率等方面考虑机器的使用情况。

如上图所示,其中参数1代表每一秒钟取一回数值。第一行数值为数据在之前一段时间的平均值,之后每一行列出的为当前的值。

7.top 查看进程对系统资源使用情况

OP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。

TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用、内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。

在top显示视图中,按字母“f”,进入增加信息的选项。上述所有列以字母a到z排列在该视图中,在该视图中按任意字母键,可以增加或者删除top显示的信息。字母为大写且左侧有“*”的选项将在显示视图中显示。选择完毕后,按非字母的任意键退回显示视图。

在显示视图中按小写字母“o”,进入显示顺序选择。对某个字母按其大写键,可以将其向上移动,按小写键,将其向下移动。比如,需要把“%cpu”放置在第二列显示,则连续按动大写字母“K”。

8.使用iostat分析IO性能

iostat可以显示CPU和I/O系统的负载情况及分区状态信息

avg-cpu段:

%user: 在用户级别运行所使用的CPU的百分比.

%nice: nice操作所使用的CPU的百分比.

%sys: 在系统级别(kernel)运行所使用CPU的百分比.

%iowait: CPU等待硬件I/O时,所占用CPU百分比.

%idle: CPU空闲时间的百分比.

Device段:

tps: 每秒钟发送到的I/O请求数.

Blk_read /s: 每秒读取的block数.

Blk_wrtn/s: 每秒写入的block数.

Blk_read:   读入的block总数.

Blk_wrtn:  写入的block总数.

iostat各个参数说明:

-c 仅显示CPU统计信息.与-d选项互斥.

-d 仅显示磁盘统计信息.与-c选项互斥.

-k 以K为单位显示每秒的磁盘请求数,默认单位块.

-p device | ALL

与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如:

# iostat -p hda

或显示所有设备

# iostat -p ALL

-t    在输出数据时,打印搜集数据的时间.

-V    打印版本号和帮助信息.

-x    输出扩展信息.

常见用法

iostat -d -k 1 10 #查看TPS和吞吐量信息

iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)

iostat -c 1 10 #查看cpu状态

转载于:https://www.cnblogs.com/tom-gao/p/7365432.html

光荣之路测试开发面试linux考题之四:性能命令相关推荐

  1. 一道大厂测试开发面试真题,你需要几分钟解答?

    又到一年年底!年底其实是跳槽换坑的绝佳时机,毕竟可以「年前面试,年后入职」,而且面试越早,好坑位较多,可选择的余地也较大.对于做好准备的测试同学来说,是绝对要鼓励多发简历,多找找面试机会的.哪怕为接下 ...

  2. 【骐程】【深信服测试开发面试】首次面试互联网

    [骐程][深信服测试开发面试]首次面试互联网 面试中出现的问题.主要就是 一面: 主要对自己的项目中使用的技术不是很熟悉,尤其是对自己项目中的hashmap等这些东西的基础底层原理没有看,也没有掌握, ...

  3. python开发面试题目_Python测试开发面试笔试题

    Python 测试开发面试笔试题 一,中文单项选择题(30 分,每个 3 分) 1.下列哪个语句在 Python 中是非法的? A.x = y = z = 1 B.x = (y = z + 1) C. ...

  4. 测试开发面试技巧_面试技巧将给您带来信心并帮助您获得开发工作

    测试开发面试技巧 by John Cobb 约翰·科布(John Cobb) 面试技巧将给您带来信心并帮助您获得开发工作 (Interview tips that will give you conf ...

  5. 测试、测试开发面试准备和复习

    目录 测开面试复习文档 一:网络知识方面 基础的网络通信知识 各层的协议 IP 是无连接的 TCP/IP 短连接和长链接 ● 请你说一说PC网络故障,以及如何排除障碍 HTTP和HTTPS的区别 GE ...

  6. 【面试总结】测试开发面试题目

    摘要 从三月初开始找工作到现在,先后面试了阿里巴巴.支付宝.字节跳动.网易.快手的测试开发岗. 大公司对于测试发开的要求相比来说高很多,要求掌握的知识点的广度和深度层次也比较高,遂整理了这两个月的面试 ...

  7. 金山办公测试开发面试总结

    目录 一.背景介绍 二.一面 三.二面 一.背景介绍   在前一篇博客中写了面试唯品会的总结,我在面试唯品会之前还面了一下位于珠海的金山办公的测试开发,虽然最后二面就凉了.本来是在BOSS直聘上看到的 ...

  8. 美团 测开|测试开发 面试真题|面经 汇总

    美团测开一面 时长:1小时 介绍一下项目 说一下为什么选择测开 项目中用到的ES说一下 你项目实现过程中有没有遇到什么问题? 微信朋友圈的功能性测试,要从那些方面考虑 测试的一般流程 linux用的多 ...

  9. 美团测试开发 面试整理

    1.get/post区别: GET和POST本质上就是TCP链接,并无差别.但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同.GET 和 POST都是http请求方式, ...

最新文章

  1. android datepicker使用方法,android DatePicker
  2. C++ Opengl 线,网格游戏源码
  3. 转:实例学习PHP程序对用户身份认证实现两种方法
  4. python地板除与除法的区别_“地板除”还是“取整除”?地板除和天花板除floor division和ceil devision...
  5. java集合的某项相加_java8实现list集合中按照某一个值相加求和,平均值等操作代码...
  6. 安装ipfs-http-client出现constants@0.1.2 install: node build.js > index.browser.js错误的解决办法
  7. where is null mysql_SQL中WHERE变量IS NULL条件导致全表扫描问题的解决方法
  8. 360互联网技术训练营第七期 - “遇见”PIKA
  9. JSP程序开发学习笔记2
  10. udp协议服务器客户端流程图,UDP 协议通信服务器端客户端.doc
  11. python里format有什么用_python format用法详解
  12. C++枚举(enum)
  13. JDK ThreadLocal解析
  14. 五分钟带你了解什么是PID模糊算法
  15. linux dstat,使用Dstat来进行Linux综合性能诊断
  16. 高中计算机应用面试教资真题,2019下半年高中信息技术教师资格证面试试题(精选)第四批...
  17. 股票爆仓应该具体怎么办呢?股票爆仓常见的危险是什么?
  18. ffmpeg 265转YUV命令 转码工具,各种格式间互转,计算PSNR
  19. apt-get: command not found解决方案
  20. 一起来学习Java浮点类型

热门文章

  1. 用计算机唱出惊雷,除了《惊雷》还有多少喊麦神曲?这十首神作你一定听过!...
  2. 悟空php微信复制的东西在哪找,微信收藏的文件在哪?从哪里能看到?
  3. java循环单链表类构造函数_C++实现双向循环链表
  4. 计算一个时间,是否在规定的时期时间之间
  5. phoenix hbase java_java jdbc访问hbase phoenix
  6. leetcode236 二叉树的最近公共祖先
  7. leetcode21 合并两个链表
  8. 如何在Appscale下发布自己的应用(二)
  9. 《Python Cookbook 3rd》笔记(2.7):最短匹配模式
  10. 《Java8实战》笔记(04):引入流