linux怎么将进程调优到8,Linux的性能调优命令

性能调优一直是运维工程师最重要的工作之一,如果您所在的生产环境中遇到了系统响应速度慢,硬盘IO吞吐量异常,数据处理速度低于预期值的情况,又或者如CPU、内存、硬盘、网络等系统资源长期处于耗尽的状态,那么这篇文章将着实的能帮助到你,如果没有也请先收藏起来。

0818b9ca8b590ca3270a3433284dd417.png

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次)。

0818b9ca8b590ca3270a3433284dd417.png

blk_read/s 每秒读取的数据块数

blk_wrtn/s 每秒写入的数据块数

blk_read   表示读取的所有数据块数

blk_wrtn   表示写入的所有数据块数

3,vmstat报告内存以及CPU状况:

名称:报告虚拟内存的统计信息

格式:vmstat [-n] [延时[次数]]

0818b9ca8b590ca3270a3433284dd417.png

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 �Cq �Cf /var/log/sa/sa10

0818b9ca8b590ca3270a3433284dd417.png

5,lscpu显示CPU信息:

dmesg 显示出开机启动的信息

lscpu 显示CPU信息

lscpu -p 显示CPU对应的节点数

getconf LONG_BIT 获知主机的位数

getconf -a 查看全部的参数

/sys/class/dmi/id 可以查看Bios的信息 bios_*

6,strace显示程序的调用:

strace �Cfc elinks �Cdump http://localhost

7,调优硬盘优先写入/读取数据用:

0818b9ca8b590ca3270a3433284dd417.png

预先读取需要写入的量,然后再处理写请求,↑读到的值将会是设置值的一半↑。

设置读取到缓存中的数值越大.写入时就会因为数据量大而速度变慢。

/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 �CO ^has_journal /dev/sdb1 去掉默认原有的日志功能

4、再分一个200M的分区./dev/sdb2. 日志卷的block必须等于 /dev/sdb1

Mke2fs �CO journal_dev �Cb 1024 /dev/sdb2

5、将/dev/sdb2作为/dev/sdb1的日志卷.

Tune2fs �Cj �CJ device=/dev/sdb2 /dev/sdb1

9,关闭记录文件系统atime:

对于网站文件,频繁的修改atime是没有意义的,会影响性能

mount �Co remount,noatime DEVICE 即可

10、修改文件日志的提交时间:

默认是5秒提交一次日志,修改更长时间可以提高性能,但容易丢失数据。

mount �Co 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 �Cx查看自开机以来每秒的平均请求数avgrq-sz

chunk size = 每秒请求数*512/1024/磁盘数,取一个最紧接2倍数的整数

stride = chunk size /block(默认是4k)

创建raid并设置chunk sinze

mdadm �CC /dev/md0 �Cl 0 �Cn3 �Cchunk=8 /dev/sdb[123]

修改raid

mke2fs �Cj �Cb 4096 �CE stride=2 /dev/md0

12,硬盘的block保留数:

dumpe2fs /dev/sda1

tune2fs �Cm 10 /dev/sda1 保留block百分比

tune2fs �Cr 保留block数

保留的block过少,影响性能,保留的过多又浪费硬盘,默认是5%

学习了上面的性能调优命令和方法后,再总结几条调优的金句:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 161. 相隔为 1 的编辑距离(DP/遍历)

文章目录1. 题目2. 解题2.1 DP超时2.2 一次遍历1. 题目 给定两个字符串 s 和 t,判断他们的编辑距离是否为 1。 注意: 满足编辑距离等于 1 有三种可能的情形: 往 s 中插入一个字符得到 t从 s 中删除一个字符得到 t在 s 中替换一个字符得到 …

Google搜索图片时只显示第一页

用Google搜索图片时出现,只显示第一页,其他页不能显示。 Method 1:未成功。 Method 2:成功。 结果图: 转载于:https://www.cnblogs.com/yfl-IT/archive/2012/06/19/2555429.html

pxe自动部署Linux,Kickstart+PXE自动部署CentOS6.6

生产环境中对于部署大量的相同系统的服务器,如果逐台安装操作系统的话是非常浪费时间的工作,还好CentOS提供了无人值守安装系统的功能,下面就详细介绍一下配置步骤。一、配置本机的yum源因为需要安装一些软件来达到我们的目的,所以…

LeetCode 247. 中心对称数 II(DP)

文章目录1. 题目2. 解题1. 题目 中心对称数是指一个数字在旋转了 180 度之后看起来依旧相同的数字(或者上下颠倒地看)。 找到所有长度为 n 的中心对称数。 示例 : 输入: n 2 输出: ["11","69","88","96"]来…

重新排列参数

重新排列参数 重新排列参数操作可以使你重新排列方法、索引器中的参数。你将方法的参数重新排列后,所有使用该方法的地方都会相应调整。以下面代码为例: class Person{public void Print(string name, int age, bool sex){}}class Program{static void M…

linux的accept函数源码,accept函数

13.2.5 accept函数处于监听状态的服务器在获得客户机的连接请求后,会将其放置在等待队列中。当系统空闲时,将接受客户机的连接请求。接收客户机的连接请求使用accept函数,该函数的具体信息如表13.6所示。表13.6 accept函数头文件函数形式i…

C# WebBrower1控件提示“该文档已被修改,是否保存修改结果”解决方法 .

C# WebBrower1控件可编辑模式保存时会提示“该文档已被修改,是否保存修改结果”在百度查了不少方法,张筱祥发现一个比较实用而且非常简单的方法,代码如下:在WebBrower1的Navigating 事件中加以下代码就没有提示了。private void w…

LeetCode 251. 展开二维向量

文章目录1. 题目2. 解题1. 题目 请设计并实现一个能够展开二维向量的迭代器。该迭代器需要支持 next 和 hasNext 两种操作。、 示例: Vector2D iterator new Vector2D([[1,2],[3],[4]]);iterator.next(); // 返回 1 iterator.next(); // 返回 2 iterator.next();…

linux添加中文字库主线任务,Linux 添加中文字体库

背景:润乾报表 win上面的项目直接上传到linux 上,但预览&下载报表时乱码如果含有斜线的单元格或统计图的报表在网页上发布时,统计图或斜线单元格里的汉字会变成小方框,此时往往是服务器端操作系统的中文安装包没有装全&#x…

eval()解析JSON

eval()将JSON文本转换为javascript对象.如:var data”{‘elements’:[""{firstname:yan,lastname:tang},""{firstname:tommy,lastname:wrox}]}”; var objeval(“(“data”)”);//转换为json对象为什么要在eval这里要添加 (“(“data”)”); 呢…

LeetCode 253. 会议室 II(贪心+优先队列)

文章目录1. 题目2. 解题1. 题目 给定一个会议时间安排的数组&#xff0c;每个会议时间都会包括开始和结束的时间 [[s1,e1],[s2,e2],…] (si < ei)&#xff0c; 为避免会议冲突&#xff0c;同时要考虑充分利用会议室资源&#xff0c;请你计算至少需要多少间会议室&#xff0…

linux futex 进程同步,Linux的新式线程同步原语——Futex

在我的上一篇文章《本地POSIX线程库》中&#xff0c;提到了Futex一词&#xff0c;发现好多读者误以为这是我的笔误&#xff0c;将Mutex错写为Futex了。其实Futex是Linux的一种全新的线程同步原语。本文将为您解读高效的Futex。Futex是fast userspace mutex的缩写&#xff0c;意…

笨鸟学Android开发(1):HelloWorld

全程视频&#xff08;IE等浏览器中若看不到以下GIF动画&#xff0c;请下载观看&#xff09; 源代码 转载于:https://www.cnblogs.com/beta2013/archive/2012/06/28/3377298.html

LeetCode 254. 因子的组合(回溯)*

文章目录1. 题目2. 解题1. 题目 整数可以被看作是其因子的乘积。 例如&#xff1a;8 2 x 2 x 2; 2 x 4.请实现一个函数&#xff0c;该函数接收一个整数 n 并返回该整数所有的因子组合。 注意&#xff1a; 你可以假定 n 为永远为正数。 因子必须大于 1 并且小于 n。示例 1&a…

linux 设备数 of,linux下devicetree中惯用的of函数

linux下devicetree中常用的of函数从device_node中获取信息&#xff1a;int of_property_read_u8_array(const struct device_node *np, const char *propname,u8 *out_values, size_t sz);int of_property_read_u16_array(const struct device_node *np, const char *propname,…

使用架构(XSD)验证XML文件

假使说XML是一个数据库&#xff0c;那么XSD就是这个数据库的结构。由此可见&#xff0c;XSD是如此重要&#xff0c;如果没有它&#xff0c;我们如何声明以及验证我们需要的XML数据文件的格式和合法性呢&#xff1f;那是不可能完成的任务&#xff0c;如果你将XML数据文件当作普通…

Linux无法连接远程仓库,ssh无法连接到远端Ubuntu的解决方法

ssh无法连接到远端Ubuntu的解决方法2014-10-16 0个评论 来源&#xff1a;KiteRunner的专栏近日&#xff0c;饱受无法远程登录到新安装在VMWare上的Ubuntu虚拟机&#xff0c;如今发现问题所在&#xff0c;故记录此问题的解决方案&#xff0c;以备后用。一、远程登录虚拟…

kohana3 数据库模块配置

Kohana 3.0 有一个很强壮的数据库模块。默认情况下数据库模块支持 MySQL 和 PHP-PDO 驱动 数据库模块已经包含在了 Kohana 3.0 安装程序之中&#xff0c;但是还需要在使用之前启动它。在你的 application/bootstrap.php 文件里修改 Kohana::modules() 方法中 database 模块&…

LeetCode 255. 验证前序遍历序列二叉搜索树(单调栈)*

文章目录1. 题目2. 解题2.1 递归超时解2.2 单调栈1. 题目 给定一个整数数组&#xff0c;你需要验证它是否是一个二叉搜索树正确的先序遍历序列。 你可以假定该序列中的数都是不相同的。 参考以下这颗二叉搜索树&#xff1a;5/ \2 6/ \1 3 示例 1&#xff1a; 输入: [5,2…

spring代码执行Linux命令,Linux 运行管理SpringBoot Shell 脚本.md

最近在做Linux 环境下的一个运行管理通用脚本&#xff0c;用来管理我的Java 小程序启动、停止等操作。虽说这些可以用手敲命令的方式实现&#xff0c;也不复杂&#xff0c;但程序员么&#xff0c;不就喜欢封装点代码&#xff0c;减少操作啥的。先讲下脚本的主要逻辑&#xff0c…