硬盘IO性能估算(IOPS,吞吐量,延时)
硬盘IO性能估算(IOPS,吞吐量,延时)说明磁盘种类
硬盘有固态硬盘(SSD 盘,新式硬盘)、机械硬盘(HDD 传统硬盘)、混合硬盘(HHD 一块基于传统机械硬盘诞生出来的新硬盘)。SSD采用闪存颗粒来储存,HDD采用磁性碟片来储存,混合硬盘(HHD: Hybrid Hard Disk)是把磁性硬盘和闪存集成到一起的一种硬盘。
容量
硬盘的容量以兆字节(MB/MiB)、千兆字节(GB/GiB)或百万兆字节(TB/TiB)为单位,而常见的换算式为:1TB=1024GB,1GB=1024MB而1MB=1024KB。但硬盘厂商通常运用的是GB,也就是1G=1000MB,而Win系统,就依旧以“GB”字样来表示“GiB”单位(1024换算的),因此我们在BIOS中或在格式化硬盘时看到的容量会比厂家的标称值要小。
转速(Rotational Speed 或Spindle speed)
RPM是Revolutions Per minute的缩写,是转/每分钟。RPM值越大,内部传输率就越快,访问时间就越短,硬盘的整体性能也就越好。
寻道时间 Tseek是指将读写磁头移动至正确的磁道上所需要的时间 ...
shc与upx加密混淆压缩
[toc]
shc混淆shc安装从官网下载http://www.datsi.fi.upm.es/~frosal/sources/ (最新2015年的shc-3.8.9b.tgz),或者源码下载https://github.com/neurobin/shc (有最新的)
123456wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9b.tgztar zxvf shc-3.8.9b.tgzcd shc-3.8.9bmake cleanmake test # 等待paused 然后回车make strings&install # 等待继续输入yes
shc命令说明
123456789101112-e %s Expiration date in dd/mm/yyyy format [none]-m %s Message to display upon expiration ["Please contact your provider"]-f %s File name of the script ...
zeroconf与mDNS
[toc]
基础概念路由路由中有以下几种形式
单播:在网络地址和网络节点之间存在一一对应的关系。
任播:根据路由拓扑自动决定送到“最近”或“最好”的目的地
多播:是一种群组通信,它把信息同时传递给一组目的计算机。常指IP多播,组播地址224.0.0.0~224.0.0.255
广播:向指定网络范围内所以设备发送信息,主机标识段host ID 为全1 的IP 地址为广播地址,ARP、DHCP都使用了广播
地域性广播:一种“特殊”的多播
DNSDomain Name System,域名服务,将域名和ip地址互相影射的分布式数据库,使用TCP和UDP的53端口
TCP:面向连接的协议,提供可靠的数据传输,一般服务质量要求比较高的情况,使用这个协议。
UDP:用户数据报协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
zeroConfZero configuration networking,零配置网络服务规范是一种让用户武穴使用DHCP、DNS等设置就能自动连接设备的一种规范,主要包含以下协议
Link-Local Address: 无需利用DHCP Server 取 ...
中间人攻击与HTTPS
[toc]
HTTP协议HTTP(hypertext transfer protocol )协议是一种七层协议,是万维网通信的基石,通常使用tcp协议(HTTP3使用quic(udp)),默认端口80
请求方法GET、HEAD:获取资源
POST:上传资源
PUT:修改资源
DELETE:删除资源
TRACE:回显请求
OPTIONS:回复资源所有可用方法
CONNECT:留给SSL加密使用
幂等性在函数式编程中,幂等函数是对任何值x具有f(f(x))= f(x)属性的函数,在编程领域,则意为同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的
GET、HEAD、PUT、DELETE、OPTIONS、TRACE都是幂等的,而GET、HEAD、OPTIONS、TRACE一般来说没有副作用。
状态码
1xx消息:请求已被服务器接收,继续处理
2xx成功:请求成功
3xx重定向:重定向
4xx请求错误:客户端错误
5xx服务器错误:服务器错误
HTTP keeep-aliveHTTP1.1加入
优点:同时打开的TCP链接少了、降低延时
缺点:请求后保持链接,可能会影 ...
udp offload
tx-udp_tnl-segmentationOverlay网络,例如VxLAN,现在应用的越来越多。Overlay网络可以使得用户不受物理网络的限制,进而创建,配置并管理所需要的虚拟网络连接。同时Overlay可以让多个租户共用一个物理网络,提高网络的利用率。Overlay网络有很多种,但是最具有代表性的是VxLAN。VxLAN是一个MAC in UDP的设计,具体格式如下所示。
从VxLAN的格式可以看出,以VxLAN为代表的Overlay网络在性能上存在两个问题。一个是Overhead的增加,VxLAN在原始的Ethernet Frame上再包了一层Ethernet+IP+UDP+VXLAN,这样每个Ethernet Frame比原来要多传输50个字节。所以可以预见的是,Overlay网络的效率必然要低于Underlay网络。另一个问题比传50个字节更为严重,那就是需要处理这额外的50个字节。这50个字节包括了4个Header,每个Header都涉及到拷贝,计算,都需要消耗CPU。而我们现在迫切的问题在于CPU可以用来处理每个网络数据包的时间更少了。
首先,VxLAN的这50个 ...
Linux IO模式
同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。
1本文讨论的背景是Linux环境下的network IO。
概念说明在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述符- 缓存 I/O
用户空间与内核空间现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为用户空间。
进程切换为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并 ...
代码整洁之道
必要性
要有代码,大胆写,Imperfect code is Better Than Perfect
现在就做,later equals never,Now is better than never
从开始就不要为了一时便利去破坏代码整洁
坚持同一规范
隔离与性能的权衡
什么是代码整洁应当有单元测试以及验收测试,使用有意义的命名,只提供一种做某一件事的途径(而非多种),尽量少的依赖关系,清晰并且尽量少的API
能通过所有测试
没有重复代码
体现系统全部设计理念
包括尽量少的实体,例如,类、方法、函数等
让读的过程轻松,即便会让写的过程更难
让营地比你来的时候 更干净
细节
名副其实
避免歧义,O I等,避免废话
使用可搜索的名称
类名不应当是动词
方法名应当是动词或动词短语
宁可明确,毋为好玩(生活和思想需要务虚,但code要务实)
避免双关语,一词一意
每个概念一个单词,一意一词
使用算法名、计算机术语、模式名、数学术语命名
使用所在领域命名
函数就该小
函数式编程,尽量少用副作用编程
做好隔离(抽象、封装、逻辑与业务隔离,实现 ...
trex测试流程
Trex简单测试注意
trex主机与dut主机第一个network为管理网,第二个与第三个network为测试用网,trex主机与dut主机测试用网eth1互联,trex主机与dut主机测试用网eth2互联;
只可运行net_set.sh 一次,获得mac地址,若mac地址全为0,重启trex主机;
测试项可在run_trex.sh修改(-m 参数为几万pps -d参数为测试时间)。
步骤
打开trex主机 运行trex_set.sh 并得到两个mac地址fa:ad:96:2e:3c:01 fa:0b:32:14:a9:02;
打开dut主机运行 dut_set.sh fa:ad:96:2e:3c:01 fa:0b:32:14:a9:02;
打开trex主机运行run_trex.sh ,等待运行结束得到trex结果。
镜像地址dut:http://192.168.200.100/mirror/longtao.wu/image_store/linux_image/wlt-simpletrextest-dut.qcow2
trex:http://192.168.200.100/ ...
vdbench的使用
ssh免密配置
参考:https://blog.csdn.net/SweeNeil/article/details/95338293
使用Vdbench测试工具对所有虚拟机磁盘进行压力测试,vdbench测试工具脚本主机定义设置如下:
hd=default,vdbench=/home/vdbench,user=root,shell=ssh
hd=hd1,system=node1
hd=hd2,system=node2
hd=hd3,system=node3
……
设置测试工具模型为8k块大小随机读,测试数据量为块存储总SSD缓存大小的1倍。在压力虚拟机上运行Vdbench测试工具。存储定义、工作负载定义、运行定义设置如下:
sd=sd1,hd=hd1,lun=/dev/sdb,openflags=o_direct,hitarea=1G,threads=1(厂家自行调整)
……
wd=wd1,sd=sd*,seekpct=100,rdpct=100,rhpct=60,xfersize=8k
rd=rd1,wd=wd1,iorate=max,elapsed=604800,ma ...
使用qemu-imag打包iso
使用qemu-image 压缩qcow2镜像qemu-img convert -c -O qcow2 raw.qcow2 outZipped.qcow2
raw.qcow2是原始镜像
outZipped.qcow2是压缩后的目标镜像
转换并压缩qemu-img convert -f raw -O qcow2