盘点linux系统中的12条性能调优命令。

导读 性能调优一直是运维工程师最重要的工作之一,如果您所在的生产环境中遇到了系统响应速度慢,硬盘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技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

时间: 2024-10-11 16:05:16

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

在linux系统中,如何使用【find】命令精确查找文件?

[find]是文件查找工具,它会遍历指定目录下所有文件的,所以使用该命令,查找文件的速度比较慢.但是它能够文件类根据型.文件的各做为条查件,找显示符合条件的文件目录. 一.既然,[find]是根据文件的特点来查看文种属性件的.那么先了解,文件有啥特点. 1.文件特点有很多,它们是分类的.find 命令如何表示文件特点的类别的: [find]命令是如何标识文件特点的类别的:              文件名称                   -name              文件类型   

详解性能调优命令

1.ps 通常我们会使用ps -aux查看用户启动的进程 USER:进程的属主 PID:进程的ID %CPU:进程占CPU的百分比 %MEM:进程占内存的百分比 VSZ:进程使用的虚拟内存量(KB) RSS:进程使用的固定内存量(KB) TTY:进程运行的终端,若与终端无关,则显示?.若为pts/0等,则表示由网络连接主机进程 STAT:进程的状态 D:不可中断的静止 R:正在执行中 S:静止状态 T:暂停静止 Z:不存在但暂时无法消除 W:没有足够的记忆体分页可分配 <:高优先序的行程 N:低

tomcat中使用apr及性能调优

tomcat8使用apr及性能调优本次安装的软件包括:jdk1.7.0_79apache-tomcat-8.0.0-RC1.tar.gzapr-1.5.2.tar.gzapr-iconv-1.2.1.tar.gzapr-util-1.5.4.tar.gztomcat-native-1.1.33-src.tar.gz 1)安装jdk1.7cd /usr/local/src rpm -ivh jdk-7u79-linux-i586.rpm ln -s jdk1.7.0_79 jdk1.7 2)安装t

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

"find"在Linux系统中是比较常用的文件查找命令,使用方法有很多,可以拥有查找文件.文件目录.文件更新时间.文件大小.文件权限及对比文件时间.下面是整理的"find"常用方法,方便以后需要的时候直接到此文章查看. 一.查找文件或者目录 find ./ -name file #file请改成自己要差的文件 二.查找文件更新时间 find ./ -mtime -3 #文件更新在3天内的 find ./ -mtime +3 #文件更新在3天以上的 三.查找文件大小

设置在 Ubuntu 12.04 中使用root 账号进行登录与修改 Linux 系统中的计算机名

3.设置在 Ubuntu 12.04 中使用root 账号进行登录 1.先设定一个 root 的密码,sudo passwd root 2.root 登录,su root 3.备份一下 lightgdm cp -p /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.bak 4.编辑 lightdm.conf sudo gedit /etc/lightdm/lightdm.conf 5.加: greeter-show-manual-login=

理解Linux系统中的load average

理解Linux系统中的load average(图文版) 博客分类: Linux linux load nagios 一.什么是load average? linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount of work that a computer system is doing).也有简单的说是进程队列的长度. Load Average 就是一段时间 (1 分钟.5分钟.15分钟

每天进步一点点——Linux系统中的时间处理

转载请说明出处:http://blog.csdn.net/cywosp/article/details/25839551 在程序中时间处理往往是一个麻烦的事,Linux系统提供了很多关于时间处理的函数,我们可以用这些函数来完成我们所需要的功能.那么在程序中一般会关心哪些时间问题呢? 真实时间:程序运行的时间,即程序启动到程序消亡所用时间或程序运行到现在所经过的时间 进程时间:一个进程所使用的CPU时间总量,适用于对程序.算法性能的检查或优化 本文只关注真实时间的处理与转换 一.Epoch 无论地

Linux系统中安装MySQL数据库操作手册

Linux系统中MySQL数据库安装手册 一.安装概述: 在Linux操作系统中安装MySQL数据库是一个我们必须要掌握的一门技术,也决定了你以后找工作的薪资待遇,所以你知道它的厉害了吧!学会安装只是第一步,你还得学好数据库的基本操作,以及搭建一个数据库的主从配置等等.这些我都会在后面的博文中说到.下面我就简单的写一些安装MySQL数据库的一些步骤,仅供参考,如有什么不妥的地方,还请见谅! 二.安装步骤: (一)基本准备工作 1.打开虚拟机,在虚拟机中下载好最新版的MySQL数据库的压缩包.在M

Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名

Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf  动态库的后缀为*.so  静态库的后缀为 libxxx.a   ldconfig   目录名 转载自:http://blog.chinaunix.net/uid-23069658-id-3142046.html 今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻.在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情. 在Linux操作系统中,普遍使用ELF格