很早就有人想让我写个 锐速的配置参数调整说明之类的教程,但是我对这些也不了解,最近实在没啥教程写,那就研究一下,简单写个文章好了,有错误欢迎指出。


安装锐速

2款锐速安装脚本+教程

某种程度上来说,锐速(ServerSpeeder)和LotServer是一样的,相比之下我更推荐后者。

两者安装并不冲突,但是不能同时启动,所以可以两个都安装,然后分别启动来测试区别,虽然我测试没什么区别。

配置文件

  1. ServerSpeeder 打开配置文件:
  2. vi /serverspeeder/etc/config
  3.  
  4. LotServer 打开配置文件:
  5. vi /appex/etc/config
  6.  
  7. # vi 打开配置文件后,按 I键 进入编辑模式(注意左下角),然后根据以下说明编辑配置文件,最后按 ESC键 退出编辑模式并输入 :wq 保存并退出。

参数说明

可以一些人看到上面几十个参数会很方,不要怕,大部分参数都是不需要改动的,我们主要修改下面这几个参数即可,其他的参数不用管。

示例配置

如果你实在不想一个个参数去研究,那么直接用下面这个示例模板好了。

  1. acc=“1”
  2. advacc=“1”
  3. advinacc=“1”
  4. wankbps=“1000000”
  5. waninkbps=“1000000”
  6. # 这两个参数代表加速宽带为 1Gbps,再加个 0 就是10Gbps了
  7. shaperEnable=“1”
  8. maxmode=“1”
  9. initialCwndWan=“44”
  10. # 这个参数请根据回程延迟修改

initialCwndWan 参数请根据你与VPS的连接延迟(回程,VPS连接你的延迟),比如 110ms,那么 110/2.5=44,即值为 44 ,自己根据延迟调整。


注意,当你不清楚某些参数该如何修改的时候,请不要修改,避免降低加速效果等情况。

修改配置文件后需要重启锐速才能生效:

ServerSpeeder:/serverspeeder/bin/serverSpeeder.sh restart

LotServer:/appex/bin/serverSpeeder.sh restart

其他说明:

下面提到的 有效数据率指的是,当你的VPS从上行向你发送了100MB大小的文件,你也正常接收到了完整的100MB大小的文件,但是实际流量消耗高于 100MB,假设服务器这次传输上行总共消耗了 120MB流量,那么 100/12=0.83*100=83% ,结果是 83%的有效数据率。

在丢包和开启了最大传输模式的时候,会降低有效数据率(但是最大传输模式会增加加速效果)。


加速接口

  1. accif=“eth*”

eth* 一般为服务器上对外提供服务的网络接口,例如 eth0, eth1, … 一般通过 ifconfig 命令可以看到;

可以同时设定多个接口作为加速接口(接口之间用空格分开),如 accif="eth0 eth1"默认为”eth0″。

TCP 加速开关

  1. acc=“1”

设为 1 表示开启 TCP 加速功能;设为 0 表示关闭 TCP 加速功能;默认为 1 。

高级加速开关

  1. advacc=“1”

设为 1 表示开启,设为 0 表示关闭;

开启此功能可以得到更好的加速效果,但有可能会造成有效数据率下降;默认为 1 。

高级入向加速开关

  1. advinacc=“0”

设为 1 表示开启,设为 0 表示关闭;

开启此功能可以得到更好的流入方向流量加速效果,也就是相对服务器来说的 下行宽带(服务器的入向,就是进来的流量,即下行宽带)。

加速接口 上行带宽

  1. wankbps=“1000000”

指的是从服务器流出到 Internet 的最大带宽,单位为 Kbps,例如服务器所连接的 Internet 带宽为 1G,则设置为 1000000;默认为 1000000。

加速接口 下行带宽

  1. waninkbps=“1000000”

指的是从 Internet 流入服务器的最大带宽,单位为 Kbps,例如服务器所连接的 Internet 带宽为 1G,则设置为 1000000;默认为 1000000;

wankbps 和 waninkbps 的设置一般与实际带宽相同为最理想;如果无法确定实际带宽,一般设置为网卡的最大吞吐能力即可;例如网卡为千兆全双工网卡,则 wankbps 和 waninkbps 都设置为 1000000;

当设置过小时,例如实际带宽有 100Mbps,但 wankbps 和 waninkbps 设置为 10Mbps,则数据流量会被限制在 10Mbps 以内,此时会降低服务器的吞吐。

流量整形开关,配合上行和下行带宽设置开启

  1. shaperEnable=“1”

设为 1 表示开启,设为 0 表示关闭;

开启此功能,会采用 wankbps 以及 waninkbps 设置的带宽大小运行;关闭此功能,会根据实时传输自动测算带宽大小;默认为 1 。

csvmode 拥塞控制模式开关

  1. csvmode=“0” highcsv=“0”

设为 1 表示开启,设为 0 表示关闭;

开启 tcp 加速后,在某些丢包较大的网络中可能会造成有效数据率下降的问题;此时开启拥塞控制模式,可以有效避免该问题;但开启此选项时,可能加速效果也会下降;默认为 0;

csvmode="1" highcsv="0" 时,为普通拥塞控制模式;对拥塞具有一定控制的同时对加速效果的影响较小;

csvmode="1" highcsv="1" 时,为高级拥塞控制模式,可以更好的控制拥塞但是相比于普通拥塞控制模式对加速效果的影响较大。

局域网加速开关

  1. subnetAcc=“0”

设为 1 表示开启;设为 0 表示关闭;

不开启时对于同一局域网内的连接不会加速;开启后对同一网段的 TCP 连接也进行加速;默认为 0 。

最大传输模式

  1. maxmode=“0”

设为 1 表示开启;设为 0 表示关闭;

开启后会进一步提高加速效果,但是可能会降低有效数据率;默认为 0 。

最大传输模式生效时间

  1. maxTxEffectiveMS=“0”

用于控制最大传输模式对每一个连接的生效时间;设为 0 表示从连接建立到连接结束,都采用最大传输模式传输;单位为 ms,1000 即 1s ;默认为 0 。

抓包功能开关

  1. pcapEnable=“0”

设为 1 表示开启,设为 0 表示关闭;

开启此功能后会抓取经过加速引擎处理的数据包,在 /serverspeeder/log(或/appex/log) 目录下生成抓包文件,此功能会造成大量日志文件,如开启请定期清理日志,避免硬盘爆炸;默认为 0 。

流量 bypass 开关

  1. bypassOverFlows=“1”

设为 1 表示开启,设为 0 表示关闭;

开启此功能后当服务器的连接数超过引擎设定后会对超过的连接的流量 bypass,否则会无法新建连接;默认为 1 。

初始 TCP 发送窗口能够发送的数据包的数量

  1. initialCwndWan=“44”

该值合理设置会获得更好的加速效果,如果设置相对实际需求偏高,但是可能会造成网络的拥塞;

根据延迟来设定是最好的,假设你与这个VPS延迟(回程延迟)为 110ms,那么除以 2.5,即可得到 44。

从 LAN 到 WAN 加速引擎在缓冲池充满和空闲时分别能够缓存的数据包队列的长度的上限

  1. l2wQLimit=“256 2048”

该值设置的高会获得更好的加速效果,但是会消耗更多的内存;

256代表256MB内存,2048代表256MB内存*8 。

从 WAN 到 LAN 加速引擎在缓冲池充满和空闲时分别能够缓存的数据包队列的长度的上限;

  1. w2lQLimit=“256 2048”

该值设置的高会获得更好的加速效果,但是会消耗更多的内存。

256代表256MB内存,2048代表256MB内存*8 。一般 l2wQLimit 和 w2lQLimit 设置一样即可。

slab 缓存缩减开关

  1. shrinkPacket=“0”

设为 1 表示开启,设为 0 表示关闭;

当服务器内存消耗很高时可以将该值设定为 1,这样会降低内存的消耗,对低内存的VPS效果不错;默认为 0 。

重传等待时间

  1. retranWaitListMS=“32

当服务器没有收到 ack 或者丢包产生之后客户端重复 ack 时间达 到 32ms,服务器重传数据;默认为 32ms.

网络拥塞判断

  1. halfCwndMinSRtt=“500”
  2. halfCwndLossRateShift=“3”

两个值分别为延时和丢包率,丢包率默认值为 3,即 1/2^3。

当拥塞产生时,退出第三代 Learning-based TCP 算法,采用类似传统 TCP 的 算法。

双边缓存设置

  1. #byte cache
  2. byteCache=“0”
  3. httpComp=“1”
  4. byteCacheMemory=“250” #MB
  5. byteCacheDisk=“0” #MB
  6. diskDev=“/dev/sda2”

当前只有部分版本支持该功能;

分别是缓存开关,数据压缩开关,内存大小,硬盘大小,指定硬盘位置;

仅处理TCP流量

  1. tcpOnly=“1”

设为 1 表示开启,设为 0 表示关闭;

开启此功能,即只处理 TCP 流量;关闭此功能,即一起处理除 TCP 以外的流量(不会对非 TCP 流量加速),一般用于配置策略对非 TCP 数据丢弃时;默认为 1 。

引擎允许的最大突发时间

  1. SmBurstMS=“15”

设为 0,则代表关闭;该值越大,数据包发送量越大;当前推荐默认为 15 。

网卡接收端合并开关

  1. rsc=“0”

设为 1 表示开启,设为 0 表示关闭;

在有些较新的网卡驱动中,带有 RSC 算法的,需要打开该功能;默认为 0 。

GSO 开关

  1. gso=“0”

设为 1 表示开启,设为 0 表示关闭;

当网卡需要开启 gso 功能时,开启此功能,锐速 变为支持 gso 的模式;关闭此功能,如果网卡开启 gso,锐速 会关闭网卡的 gso 功能;默认为 0 。

lanSegment 开关

  1. lanSegment=“”

当 锐速 不是 TCP 连接的最终节点并且采用单臂模式部署时,如果 锐速 和服务器之间网络环境很好,不需要加速,将此参数的值设为 Lan 一侧的子网网段 (参数的值为子网网段的十六进制表示加子网掩码,例:ip 为 172.33.0.0/16,lanSegment=”AC210000/16″),则 锐速 和服务器之间不进行加速,可以节省 serverSpeeder 使用的资源并获得更好的加速效果。

如果不设置此参数,则 锐速 会对所有经过的 TCP 连接进行加速。(注:如果参数转换为十六进制后,第一位数字为 0 时,需要省略,不然无法正常写入配置。例如,参数十六进制值为:0C210000/16,那么 lanSegment=”C210000/16″.)

启动锐速时 写入配置所需时间

  1. configTimeout=“30”

当引擎的数目很多时需要写入配置的时间较长,默认为 30s 。

锐速 启动的加速引擎(对应CPU核心)的的个数

  1. engineNum=“0”

在多处理器(核)的系统环境下,启用多个加速引擎可以使网络流量的负载在多个处理器(核)之间做均衡分配,从而帮助优化系统 CPU 资源的利用;

启用多个加速引擎时,引擎序号从 0 开始,分别为 engine0,engine1,engine2,等等;每个引擎的负载对应交给相同序号的处理器来处理,即 engine0 使用 cpu0,engine1 使用 cpu1 等;engineNum 默认为 0,表示启用的加速引擎个数与系统的处理器个数相同,64bit 架构下,当实际的 engineNum 参数大于 4 时,检查内存:

当总内存减去 engine 占用内存剩余数小于 2G 时,提示用户一个 warning:

LotServer Warning: $CPUNUM engines will be launched according to the config file. Your system's total RAM is $memTotal(KB), which might be insufficient to run all the engines without performance penalty under extreme network conditions.

白名单开关

  1. shortRttMS=“10”

打开后 锐速 将不对 RTT 小于 shortRttMS 的连接加速,节约系统资源,提高性能;

设置为 0 时表示关闭此功能,锐速 会加速所有的连接;设置为其他值时,例如 10,则表示当第一次建立连接时,锐速 会测量所有的新建连接的 RTT,但是不对其进行加速;如果 RTT 大于 10ms,锐速 会从第二次建立连接开始对其加速,如果 RTT 小于 10ms,锐速 则一直不会对其加速。默认值 10ms.

重启 锐速 后,原来记录的每个连接的 RTT 会被清除,重新开始记录。

锐速 使用五元组判断是否为同一连接,五元组包括:源 IP, 目的 IP, 源端口,目的端口和协议。

锐速 模块文件的路径

  1. apxexe=“/appex/bin/acce-***”

锐速 授权文件的路径

  1. apxlic=“/appex/etc/apx-***.lic”

锐速的详细介绍和原理等看这里:https://github.com/0oVicero0/serverSpeeder_Install/blob/master/lotServer.pdf