Linux系统-IO调优

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

A、查看:ulimit –n

PjKRJS.png

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

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

PjKTZq.png

B、修改限制,优化:

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

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

C、生效

方法一:永久生效

重启或者退出重新登录

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

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

A、修改:

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

* soft nproc 32768
* hard nproc 65535

B、查看

1
ulimit –u

PjKqiT.png

C、生效

方法一:永久生效

重启或者退出重新登录

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

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

PjKLJU.png

参数详解:

1
2
3
4
5
6
7
8
9
10
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

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

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

PjKvQJ.png

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

1
2
3
time			#执行命令并计时

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

PjKzLR.png

注释:

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

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

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

测试硬盘读速度命令:hdparm

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

PjM9dx.png

注释:

1
2
3
4
5
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

参数:

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

-T #直接从内存的cache读取数据的速度。实际上显示出被测系统的处理器缓存和内存的吞吐量
博主QQ:1012405802
技术交流QQ群:830339411
版权声明:网站内容有原创和转载,如有侵权,请联系删除,谢谢!!
感谢打赏,93bok因你们而精彩!!(支付宝支持花呗)
0%