zoukankan      html  css  js  c++  java
  • 网络编程:测试磁盘和网络的性能

    一、dd命令测试磁盘的读写性能

    dd是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。另外在linux中,有两个特殊的设备:/dev/null:回收站、无底洞,经常作为写端,不会产生IO,/dev/zero产生字符,经常作为读端,也不会产生IO。

    1、测试磁盘写能力
        dd if=/dev/zero of=/test1.img bs=4k count=10000
        因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。命令结尾添加oflag=direct将跳过内存缓存,添加oflag=sync将跳过hdd缓存。
    2、测试磁盘读能力
        dd if=/dev/sda of=/dev/null bs=4k  count=10000
        因为/dev/sdb是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb上,也相当于测试磁盘的读能力。

    3、测试同时读写能力
        time dd if=/dev/sda of=/test1.img  bs=4k count=10000
        在这个命令下,一个是物理分区,一个是实际的文件,对它们的读写都会产生IO(对/dev/sda是读,对/test.img是写),假设它们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力。

    二、使用dd和nc命令测试网络性能

    nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具
    (1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
    (2)端口的扫描,nc可以作为client发起TCP或UDP连接
    (3)机器之间传输文件
    (4)机器之间网络测速   

    nc命令有个-l参数可以用来监听指定端口,因此我们要完成上面的功能,就只需要简单的从/dev/zero或者其他虚拟设备读入数据:

    time nc -l -p 5001 < /test.img

    然后另外一台电脑使用nc来连接到这个端口并读入数据:
    time nc 192.168.0.11 5001 > /dev/null
    上面的测试的结果中,是从磁盘读数据通过网络获取,通过time命令或缺时间参数,可以计算出网络的性能。更准备的测试应该从/dev/zero中多数据会更好一些
     
  • 相关阅读:
    Ansible安装配置
    Git 工作流程
    使用 Docker 搭建 Tomcat 运行环境
    Linux的cron与%
    配置sonar和jenkins进行代码审查
    Jenkins配置基于角色的项目权限管理
    Jenkins和maven自动化构建java程序
    Jenkins修改workspace和build目录
    Git 进阶指南
    git代码回滚:Reset、Checkout、Revert的选择
  • 原文地址:https://www.cnblogs.com/wxquare/p/7471651.html
Copyright © 2011-2022 走看看