码迷,mamicode.com
首页 > 系统相关 > 详细

Linux系统-IO调优

时间:2018-09-21 01:04:15      阅读:734      评论:0      收藏:0      [点我收藏+]

标签:mit   错误   uri   客户端   ulimit   回收   buffer   问题   conf   

本文源链接地址:https:www.93bok.com

一、设置一个进程可以打开的文件数

A、查看:ulimit –n

技术分享图片

从上边可以看出,一个进程最大只能打开1024个文件,我们来测试一下,用2000个客户端访问nginx页面2000次,看看会报什么错误

yum -y install httpd-tools
ab -n 2000 -c 2000 http://192.168.10.22/index.html

技术分享图片

B、修改限制,优化:

vim /etc/security/limits.conf
*               soft    nofile          32768
*               hard    nofile          65535

注意:soft软限制是一个警告值,而hard硬限制则是一个真正意义的阈值,超过就会报错。soft一定要比hard小。

C、生效

方法一:永久生效

重启或者退出重新登录

方法二:临时生效
ulimit -n 65535

二、设置一个用户可以最多打开的进程数

A、修改:

vim /etc/security/limits.d/90-nproc.conf
注意:这是在centos6下,centos7为/etc/security/limits.d/20-nproc.conf

*          soft    nproc     32768
*          hard    nproc     65535

B、查看

ulimit –u

技术分享图片

C、生效

方法一:永久生效

重启或者退出重新登录

方法二:临时生效
ulimit -u 65535

D、ulimit -a 查看所有限制值

技术分享图片

参数详解:

1)core file size            #kdump转储功能打开后产生的core file大小限制
2)data seg size         #数据段大小限制
3)file size             #文件大小限制
4)open files                #打开的文件个数限制
5)pipe size             #管道大小的限制
6)POSIX message queues  #消息队列大小
7)stack size                #栈(zhan)大小
8)cpu time              #CPU时间使用限制
9)max user processes        #用户打开最大进程限制
10)virtual memory       #虚拟内存限制

三、测试硬盘速度

测试硬盘写速度命令:dd

在使用前首先了解两个特殊设备:

A、/dev/null     伪设备,回收站,写该文件不会产生IO开销
B、/dev/zero     伪设备,会产生空字符流,读该文件不会产生IO开销
dd if=/dev/zero of=/a.txt bs=8k count=300000

技术分享图片

生成2.5G的一个文件,IO写的速度约为99MB/s,这个速度可以多测试几遍取一个平均值,符合概率统计

time            #执行命令并计时

time dd if=/dev/zero of=/a.txt bs=8k count=300000

技术分享图片

注释:

1)  实际时间(real time):从command命令行开始执行到运行终止的消逝时间
2)  用户CPU时间(user CPU time):命令执行完成话费的用户CPU时间,即命令在用户态中执行时间总和
3)  系统CPU时间(system CPU time):命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和

其中,用户CPU时间和系统CPU时间之和为CPU时间,即命令占用CPU执行的时间总和。实际时间要大于CPU时间,因为Linux是多任务操作系统,往往在执行一条命令时,系统还要处理其它任务。

另一个需要注意的问题是即使每次执行相同命令,但所花费的时间也是不一样,其花费时间是与系统运行相关的。

测试硬盘读速度命令:hdparm

安装yum -y install hdparm
hdparm -T -t /dev/sda

技术分享图片

注释:

Timing cached reads:   18142 MB in  2.00 seconds = 9081.38 MB/sec
#2秒钟直接从内存的cache读取数据18142MB。平均9081.38MB/sec

Timing buffered disk reads: 570 MB in  3.01 seconds = 189.61 MB/sec
#3.01秒钟从硬盘缓存中读570MB。平均189.61MB/sec

参数:

-t      #不使用预先的数据缓冲,标示了Linux下没有任何文件系统开销时磁盘可以支持多块的连续数据读取

-T      #直接从内存的cache读取数据的速度。实际上显示出被测系统的处理器缓存和内存的吞吐量

Linux系统-IO调优

标签:mit   错误   uri   客户端   ulimit   回收   buffer   问题   conf   

原文地址:https://www.cnblogs.com/93bok/p/9684198.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!