乐趣区

关于linux:Linux服务器性能调优之IO调优详解

1. 过程能够关上的文件数(高并发时罕用)

ulimit -n

查看一个过程能够关上的文件数

批改过程能够关上的最大文件数

长期批改:

ulimit -n [过程数]

永恒批改:批改限度用户资源配置文件

vim /etc/security/limits.conf

开端增加

  • soft nofile 102400
  • hard nofile 102400

———————————————————————————————————————————

2. 用户能够开启的最大过程数(高并发时罕用)

ulimit -u

查看以后用户能够关上的最大数

批改以后用户能够开启的最大过程数

长期批改:

ulimit -u [过程数]

永恒批改:批改限度用户资源配置文件

vim /etc/security/limits.d/90-nproc.conf

开端增加

  • soft nproc 102400
  • hard nproc 102400

———————————————————————————————————————————

3. 查看 I / O 资源限度

ulimit -a

———————————————————————————————————————————

须要 C /C++ Linux 服务器架构师学习材料加 qun(563998835)(材料包含 C /C++,Linux,golang 技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg 等),收费分享

4.I/ O 调优范例

————————–I/ O 调优举例 ————————————-

[root@localhost ~]# yum install -y httpd // 装置 apache 测试

[root@localhost ~]# echo Test > /var/www/html/index.html

[root@localhost ~]# service httpd restart

[root@localhost ~]# ab -n 2000 -c 2000 #http://192.168.1.63/index.html // - n 代表每次并发量,- c 代表总共发送的数量

This is ApacheBench, Version 2.3 <$Revision:** 655654 **$>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.1.63 (be patient)

socket: Too many open files (24)

超过了限度,咱们就无奈在关上咱们的 html 这个文件,解决办法:

vim /etc/security/limits.conf // 限度用户资源配置文件

* soft nofile 102400 #开端增加这两行

* hard nofile 102400

注:soft 是一个正告值,而 hard 则是一个真正意义的阀值,超过就会报错。soft 肯定要比 hard 小。

启动零碎:reboot,永恒失效的毛病,必须重启零碎

reboot

重启

service httpd restart

ab -n 2000 -c 2000 http://192.168.1.63/index.html

……

Server Software: Apache/2.2.15

Server Hostname: 192.168.1.63

Server Port: 80

Document Path: /index.html

Document Length: 5 bytes

……

———————————————————————————————————————————

5. 硬盘速度测试

执行读写命令测试硬盘速度

在应用前首先理解两个非凡设施

/dev/null 伪设施,回收站. 写该文件不会产生 IO 开销

/dev/zero 伪设施,会产生空字符流,读该文件不会产生 IO 开销

[root@localhost ~]# dd if=/dev/zero of=/test.dbf bs=8K count=30000

3000+0 records in

3000+0 records out

24576000 bytes (25 MB) copied, 5.13755 s, 4.8 MB/s

生成 25M 的一个文件,IO 写的速度约为 4.8 MB/s

当然这个速度能够多测试几遍取一个平均值,合乎概率统计.

time 命令用于执行前面的命令并计时

[root@localhost ~]# time dd if=/dev/zero of=/test1.dbf bs=8k count=3000

3000+0 records in

3000+0 records out

24576000 bytes (25 MB) copied, 1.04913 s, 23.4 MB/s

real 0m1.061s

user 0m0.002s

sys 0m0.770s

1) 理论工夫 (real time): 从 command 命令行开始执行到运行终止的消失工夫;

2) 用户 CPU 工夫 (user CPU time): 命令执行实现破费的用户 CPU 工夫,即命令在用户态中执行工夫总和;

3) 零碎 CPU 工夫 (system CPU time): 命令执行实现破费的零碎 CPU 工夫,即命令在外围态中执行工夫总和。

其中,用户 CPU 工夫和零碎 CPU 工夫之和为 CPU 工夫,即命令占用 CPU 执行的工夫总和。理论工夫要大于 CPU 工夫,因为 Linux 是多任务操作系统,往往在执行一条命令时,零碎还要解决其它工作。

另一个须要留神的问题是即便每次执行雷同命令,但所破费的工夫也是不一样,其破费工夫是与零碎运行相干的。

应用 hdparm 工具测试硬盘速度

hdparm -T -t /dev/sda

-t perform device read timings

不应用事后的数据缓冲, 标示了 Linux 下没有任何文件系统开销时磁盘能够反对多快的间断数据读取,能够了解为读硬盘

-T perform cache read timings

间接从内存的 cache 读取数据的速度。实际上显示出被测系统的处理器缓存和内存的吞吐量,能够了解为读取内存

退出移动版