导读 性能调优一直是运维工程师最重要的工作之一,如果您所在的生产环境中遇到了系统响应速度慢,硬盘IO吞吐量异常,数据处理速度低于预期值的情况,又或者如CPU、内存、硬盘、网络等系统资源长期处于耗尽的状态,那么这篇文章将着实的能帮助到你,如果没有也请先收藏起来。
1,hdparm查看硬度读取速度:
命令:hdparm -t /dev/sda5
打印:Timing buffered disk reads: 254 MB in 3.01 seconds = 84.34 MB/sec
说明:能够指定具体的哪块硬盘进行查询的哦!
2,iostat检测磁盘IO情况:
格式:iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval ]
描述:iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况,同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析,每1秒检测统计一次(共5次)。

blk_read/s 每秒读取的数据块数 blk_wrtn/s 每秒写入的数据块数 blk_read   表示读取的所有数据块数 blk_wrtn   表示写入的所有数据块数

3,vmstat报告内存以及CPU状况:
名称:报告虚拟内存的统计信息
格式:vmstat [-n] [延时[次数]]

R: 运行和等待CPU时间片的进程数。长期大于CPU的个数,代表CPU不足
B: 等待资源的进程数,如果等待数量多,问题有可能处在I/O或者内存
Swpd: 切换到内存交换区的内存大小[以KB为单位]
free: 当前空闲的物理内存数量[以KB为单位]
si: 由磁盘调入内存
so: 由内存调入磁盘
bi: 从块设备读入数据的总量
bo: 写到块设备的数据总量
bi+bo 1000 如果超过1000,代表硬盘的读写速度有问题
in: 在某一时间间隔内观测到的每秒设备中断数[中断数太多对性能不好]
cs: 列表示每秒产生的上下文切换次数
us+sy > 80% 代表CPU资源不足
us: 用户进程消耗的CPU时间百分比
sy: 内核进程消耗的CPU时间百分比
id: CPU处在空闲状态的时间百分比
wa: IO等待所占用的时间百分比
runq-sz: 内存中可以运行的进程数
plist-sz: 系统中活跃的任务个数
4,sar检测CPU资源:
任务计划 /etc/cron.d/sysstat
日志目录 /var/log/sa
查看方法 Sar –q –f /var/log/sa/sa10

5,lscpu显示CPU信息:
dmesg 显示出开机启动的信息
lscpu 显示CPU信息
lscpu -p 显示CPU对应的节点数
getconf LONG_BIT 获知主机的位数
getconf -a 查看全部的参数
/sys/class/dmi/id 可以查看Bios的信息 bios_*
6,strace显示程序的调用:
strace –fc elinks –dump http://localhost
7,调优硬盘优先写入/读取数据用:

预先读取需要写入的量,然后再处理写请求,↑读到的值将会是设置值的一半↑。 设置读取到缓存中的数值越大.写入时就会因为数据量大而速度变慢。 /sys/block/sda/queue/nr_requests 队列长度越大,硬盘IO速度会提升,但占用内存 /sys/block/sda/queue/scheduler 调度算法Noop、anticipatory、deadline、[cfq]

8,将Ext3文件系统的日志功能独立:
1、创建200M的/dev/sdb1 格式化为ext3
2、dumpe2fs /dev/sdb1查看文件系统功能中包含的has_journal
3、Tune2fs –O ^has_journal /dev/sdb1 去掉默认原有的日志功能
4、再分一个200M的分区./dev/sdb2. 日志卷的block必须等于 /dev/sdb1
Mke2fs –O journal_dev –b 1024 /dev/sdb2
5、将/dev/sdb2作为/dev/sdb1的日志卷.
Tune2fs –j –J device=/dev/sdb2 /dev/sdb1
9,关闭记录文件系统atime:
对于网站文件,频繁的修改atime是没有意义的,会影响性能
mount –o remount,noatime DEVICE 即可
10、修改文件日志的提交时间:
默认是5秒提交一次日志,修改更长时间可以提高性能,但容易丢失数据。
mount –o remount,commit=15 DEVICE
11,RAID轮循写入调优,适用于0/5/6:

chunk size.轮循一次写入的字节.默认是64K,只要没有写满,就不会移动到下一个设备 设置在每个硬盘都只写一个文件就切换到下一块硬盘,那么如果都是1K的小文件,就会将系统资源浪费在切换硬盘上 如果将chunk size的值设置很大,比如100M,那么也就没有了意义,还不如用一块硬盘。 Stripe size.条带大小,并不是有数据就写入,而是设置每次写入的数据量,一般是16K写一次。 所以.Chunk size(64K)/stripe size(16K),也就是说每块硬盘写四次。 ------------------------------------算当前应该把chunk size调成多少------------------------------------ 使用iostat –x查看自开机以来每秒的平均请求数avgrq-sz chunk size = 每秒请求数*512/1024/磁盘数,取一个最紧接2倍数的整数 stride = chunk size /block(默认是4k) 创建raid并设置chunk sinze mdadm –C /dev/md0 –l 0 –n3 –chunk=8 /dev/sdb[123] 修改raid mke2fs –j –b 4096 –E stride=2 /dev/md0

12,硬盘的block保留数:
 dumpe2fs /dev/sda1
tune2fs –m 10 /dev/sda1 保留block百分比
tune2fs –r 保留block数
保留的block过少,影响性能,保留的过多又浪费硬盘,默认是5%

学习了上面的性能调优命令和方法后,再总结几条调优的金句: 独立设备性能速度比集成的强,因为不占用主机整体资源 工程师一般不会远程管理计算机,需要提供日志等信息 硬盘空间越大,读取的速度越慢,可以考虑用多块硬盘组成一块较大空间 分区只是在硬盘上做标识,而不像格式化在做文件系统特性,所以速度快 硬盘越靠外侧速度越快[分区号越小越靠外区,所以将数据量大的首先分区]. 程序开发者注重雇主的功能要求,系统管理员注重程序的资源开销

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:https://www.linuxprobe.com/

盘点linux系统中的12条性能调优命令。的更多相关文章

  1. 盘点linux操作系统中的10条性能调优命令,一文搞懂Linux系统调优

    原文链接:猛戳这里 性能调优一直是运维工程师最重要的工作之一,如果您所在的生产环境中遇到了系统响应速度慢,硬盘IO吞吐量异常,数据处理速度低于预期值的情况,又或者如CPU.内存.硬盘.网络等系统资源长 ...

  2. Linux性能调优命令之free

    功能说明 free 命令显示系统使用和空闲的内存情况,包括物理内存.交互区内存(swap)和内核缓冲区内存.共享内存将被忽略 语法 free [参数] 参数 -b : 以Byte为单位显示内存使用情况 ...

  3. Linux 系统TCP连接内存大小限制 调优

    系统TCP连接内存大小限制 TCP的每一个连接请求,读写都需要占用系统内存资源,可根据系统配置,对TCP连接数,内存大小,限制调优. 查看系统内存资源 记录内存 详情:cat /proc/meminf ...

  4. 性能调优命令之jstack

    jstack是java虚拟机自带的一种线程堆栈跟踪工具. /opt/java8/bin/jstack Usage: jstack [-l] <pid> (to connect to run ...

  5. find查找文件命令 - Linux系统中的常用技巧整理

    “find”在Linux系统中是比较常用的文件查找命令,使用方法有很多,可以拥有查找文件.文件目录.文件更新时间.文件大小.文件权限及对比文件时间.下面是整理的“find”常用方法,方便以后需要的时候 ...

  6. linux概念之性能调优

    目前,对系统进行性能调试的工具有很多,这些可以两大类:一类是标准的分析工具,即所有的UNIX都会带的分析工具: 另一类是不同厂商的UNIX所特有的性能分析工具,比如HP-UX就有自己的增值性能分析工具 ...

  7. Redis 宝典 | 基础、高级特性与性能调优

    转载:Redis 宝典 | 基础.高级特性与性能调优 本文由 DevOpsDays 本文由简书作者kelgon供稿,高效运维社区致力于陪伴您的职业生涯,与您一起愉快的成长.     作者:kelgon ...

  8. JVM性能调优详解

    前面我们学习了整个JVM系列,最终目标的不仅仅是了解JVM的基础知识,也是为了进行JVM性能调优做准备.这篇文章带领大家学习JVM性能调优的知识. 性能调优 性能调优包含多个层次,比如:架构调优.代码 ...

  9. [转帖]JVM性能调优详解

    JVM性能调优详解 https://www.cnblogs.com/secbro/p/11833651.html 应该是 jdk8 以前的方法 貌似permsize 已经放弃这一块了. 前面我们学习了 ...

随机推荐

  1. Wireshark数据抓包教程之认识捕获分析数据包

    Wireshark数据抓包教程之认识捕获分析数据包 认识Wireshark捕获数据包 当我们对Wireshark主窗口各部分作用了解了,学会捕获数据了,接下来就该去认识这些捕获的数据包了.Wiresh ...

  2. Linux网卡驱动

    <网络知识> a:网络模型               OSI模型               TCP模型 虽然OSI模型看着挺完美的,但是过于复杂,这样就会导致不实用,在Linux系统中 ...

  3. with在模板中的应用

    var str = 'Hello <%= name %>!'; var o = { name: 'Alice' }; function tmpl(str, obj) { str = 'va ...

  4. bzoj 3996 最小割

    公式推出来后想了半天没思路,居然A是01矩阵..... 如果一个问题是求最值,并那么尝试先将所有可能收益加起来,然后矛盾部分能否用最小割表达(本题有两个矛盾,第一个是选还是不选,第二个是i,j有一个不 ...

  5. Codeforces Beta Round #97 (Div. 1) C. Zero-One 数学

    C. Zero-One 题目连接: http://codeforces.com/contest/135/problem/C Description Little Petya very much lik ...

  6. UVALive 5066 Fire Drill BFS+背包

    H - Fire Drill Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Sta ...

  7. HTML的各个标签的默认样式

    head{ display: none } body{ margin: 8px;line-height: 1.12 } button, textarea,input, object,select { ...

  8. PHPExcel 导出2003和2007的excel文档实例

    require_once 'common/excel/PHPExcel.php'; require_once 'common/excel/phpExcel/Writer/Excel2007.php'; ...

  9. BZOJ 1500: [NOI2005]维修数列 (splay tree)

    1500: [NOI2005]维修数列 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 4229  Solved: 1283[Submit][Status ...

  10. java多线程实现主线程等待子线程执行完问题

    本文介绍两种主线程等待子线程的实现方式,以5个子线程来说明: 1.使用Thread的join()方法,join()方法会阻塞主线程继续向下执行. 2.使用Java.util.concurrent中的C ...