美文网首页
Linux服务器性能调优之I/O调优详解

Linux服务器性能调优之I/O调优详解

作者: linux大本营 | 来源:发表于2020-09-12 15:33 被阅读0次

    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.<$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读取数据的速度。实际上显示出被测系统的处理器缓存和内存的吞吐量,可以理解为读取内存

    相关文章

      网友评论

          本文标题:Linux服务器性能调优之I/O调优详解

          本文链接:https://www.haomeiwen.com/subject/nxpwektx.html