UT2.0缓存、高级参数详解和优化

UT2.0缓存、高级参数详解和优化
UT2.0缓存、高级参数详解和优化

UT2.0缓存、高级参数详解和优化

uTorrent在默认参数下基本能良好运作,官方建议若未出现特殊问题无需改动,有时修改后的实际效果适得其反。以下优化仅为建议, 请根据自身网络环境测试、设置合适的参数

===========================================

缓存设置,硬盘更健康

===========================================

通过物理内存缓存下载数据到特定容量后再写入硬盘,或一次读取特定容量的上传数据到物理内存再分段上传,有利于减少硬盘的读写频率或次数 (频率和次数的概念还是有一定区别)

选项--〉设置--〉高级--〉缓存

缓存基本设置(理论上只要设置了和上传任务同样的内存,UT在把文件全部读取进内存后就不需要再对原文件进行读取操作)

1、手动指定缓存大小以覆盖自动设置的缓存大小(MB)---(建议512~1400) 请根据内存实际情况设置,最小值为1

建议最高值不超过1.4G(超此值在某些操作系统高速上传或下载时uT可能会无响应)

即uT使用多少物理内存作为读/写缓存,设置值为读+写的缓存整体值(无法分别设置),uT在设置总值内实时智能分配读/写缓存,在同时有上传和下载时会优先保障写入缓存

2、不需要缓存时减少内存的使用量---(不勾) 若勾选在无上传/下载时将从物理内存释放(清空)所有uT不使用的缓存。

小或等于512m内存的建议勾选。

大内存建议不勾,勾选的效果类似于忽略手动指定的缓存大小;

若内存紧张,特别是物理内存只有512m或更少的电脑,此项勾选可极大缓解小内存压力。

高级缓存设置

1、启用磁盘写入缓存---(勾选) 通过物理内存缓存下载数据到特定容量后再写入硬盘,以减少硬盘写入频率

A. 每2分钟写入未使用的区块---(不勾) 是否将只下载了部分数据分段(16kb blocks)就停止下载活动达到或超过2分钟的非完整区块(piece)写入硬盘

B. 立即写入已下载完毕的区块--(不勾) 是否每下载完毕1个完整区块(piece)立即写入硬盘 (不勾则最多延迟15秒再写入硬盘)

以上两项若勾选可避免程序或系统错误/死机时丢失已下载数据的几率,但硬盘写入频率相应增加,建议不勾

2、启用磁盘读取缓存---(勾选) 缓存特定容量的上传数据到物理内存再分段上传,以减少硬盘读取频率

A. 如果上传速度较低则关闭读取缓存---(不勾) 是否在上传速度<40kb/s时自动关闭读取缓存,考虑到充分利用内存,建议不勾

B. 从读取缓存中移除较旧的缓存区块---(勾选) 是否从读取缓存删除超过10分钟无上传活动的区块

建议勾选,即使你的内存很大也建议勾选

在“不需要缓存时减少内存的使用量”和“如果上传速度较低则关闭读取缓存”与本项同时不勾选的情况下,用于缓存的内存容易在短时间内被占满(因为缓存的读取数据只会有增无减),不利于uT的缓存机制或容易造成与windows 操作系统缓存机制冲突、uT无响应等

C. 缓存超负荷时增加自动缓存的大小---(勾选) 读取缓存在超载时自动增加以减少磁盘读取频率,特别是在高速上传和硬盘性能较低的情况下。此项若和“不需要缓存时减少内存的使用量”同时勾选,可在uT“速度-->磁盘统计”看到明

显的读取缓存实时增减变化,但官方说明如果手动定义了缓存大小,此项勾选与否并不重要

3、对磁盘写入禁用系统缓存---(勾选)

4、对磁盘读取禁用系统缓存---(勾选)

禁用windows操作系统本身的磁盘读/写缓存,类似于禁用uT使用windows系统虚拟内存,对目前主流硬件性能和G级别内存来说压力不大,大内存推荐

在uT高速上传或下载时,windows系统本身的磁盘读写缓存机制有时会因尝试缓存uT不断增速的读/写频率而占用大量物理内存,若内存占满windows则启用虚拟内存进行页面文件交换,从而导致uT的传输速度下降。

另一方面,若启用windows磁盘缓存也会增加硬盘寻道,当uT的缓存占满时会降低uT传输效率。

在windows优化时对虚拟内存的启用与否或设置大小有很多争议,原理即通过一定的硬盘空间“虚拟内存”并在物理内存超载时交换页面文件以减缓内存压力,但也会相应增加硬盘读写频率,属于鱼和熊掌权衡的问题。

===========================================

uTorrent 2.0 高级参数含义和部分优化

===========================================

选项--〉设置--〉高级--〉高级选项[警告:请勿修改!] --〉点选需要修改的的项--〉在下方参数框修改参数--〉修改完毕点选设置--〉点选确定完成设置

* uTorrent对在高级选项中修改过的参数自动添加前缀*号,便于识别

设置含义: true为启用该功能,false为禁用该功能,数字为设定数值

bt 前缀--------关键传输功能选项

diskio 前缀----磁盘功能选项

gui 前缀--------界面和程序操作功能选项

net 前缀-------网络管理选项

peer 前缀------客户端管理选项

queue 前缀---传输队列管理选项

rss 前缀---------RSS广播功能选项

其他前缀-------其他未分组功能选项(Web UI、兼容、安全设置等)

下载 (280.78 KB)

2010-5-3 09:41

以下选项后的数值为官方默认值,随附建议修改值

高级选项中很多默认设置已经合乎需要,有很多功能我们用不到也不用改动,大概了解即可

--------

蓝标为建议关注或调整的项目,主要目的是提高连接能力和保护硬盘

--------

请根据个人的网络环境测试、修改合适自己的设置

allow_pairing: true

默认启用配对连接。

类似于蓝牙的配对概念,允许任何外部程序以特定密码和更少的用户交互方便地登录Web UI, 用户必须授权uT为每个连接应用申请生成登录密码,出于安全原因,配对只允许在同一台电脑上运行设置。

bt.allow_same_ip: false

默认禁用来自相同IP的多个传入连接,增强反吸血保护

bt.ban_ratio: 128

单个对等客户端在被屏蔽之前发来的完好数据区块与损坏数据区块的最低可接受比率

生效前提为 bt.ban_threshold 达到最高限制值且 https://www.360docs.net/doc/0b3437091.html,e_ban_ratio 选项启用

bt.ban_threshold: 3

允许单个对等客户端发来的最大损坏数据区块个数, 达到此限制值将屏蔽该对等客户端

生效前提为 https://www.360docs.net/doc/0b3437091.html,e_ban_ratio 选项启用

https://www.360docs.net/doc/0b3437091.html,pact_allocation: false

默认禁用,该功能按紧密增量写入方式创建下载文件,而非预先分配硬盘空间,可减少硬盘实时占用但因为是小文件写入在下载任务未完成前可能会增加磁盘碎片,启用本功能未完成文件将极有可能无法预览。

1) 若与“参数设置-->常规-->下载前预先分配磁盘空间”功能同时启用,将忽略紧密增量写入方式,而强制预先分配磁盘空间;

2) 若要实现本功能,单个下载任务中的任何文件不能被跳过(不能选择性下载种

子包含的文件,只能完全下载)。若在创建下载任务时跳过了部分文件(非完整下载),本功能将失效。

bt.connect_speed: 5

uT每秒尝试建立的最大连接数,无论是uTP连接还是TCP连接

bt.enable_tracker: false

默认禁用内嵌在uT程序中的简易型tracker服务器,该简易型tracker服务器不适用于高安全性或大规模交换服务的要求。

URL访问地址为 h**p://IP:port/announce,IP为本机的WAN广域网IP地址 (如果使用了动态DNS 解析服务, IP地址可使用domain域名名称来代替), port端口号为uT的侦听端口(或设置启用的其他侦听端口),该简易型Tracker 服务器可跟踪外部种子, 但无web界面也无法进行限制和查看这些被跟踪的种子,若需使用此功能, 请先在路由正确配置端口转发或虚拟服务器

bt.graceful_shutdown: true

默认启用下载数据保障功能。将在关闭uT之前等待必需的操作(如: 将正在进行的区块写入磁盘、处理删除队列中的待删文件、及等待Tracker 服务器的停止回应等) ,即使程序表面退出uT仍会存在于进程中直至全部操作完成,若禁用此选项则在最多10秒后强制终止uT,但可能会造成已下载数据部分丢失。

bt.multiscrape: true

默认启用查询tracker服务器时的并发散列校验功能,uT会自动检测 tracker 服务器是否支持并发校验查询,若不支持,将使用单联校验查询

bt.no_connect_to_services: true

默认启用,禁止uT侦听bt.no_connect_to_services_list列表中定义的端口,避免反病毒/防火墙软件误报uT正在发送邮件或其他操作

bt.no_connect_to_services_list: 25,110,6666,6667

uT将不侦听本项设置的端口,如电子邮件服务端口25、110 或其他公用服务端口列表,避免反病毒/防火墙软件误报uT正在发送邮件或其他操作

生效前提为 bt.no_connect_to_services 启用

bt.prio_first_last_piece: false

默认禁用优先下载文件的首尾区块,优先下载首尾区块主要是为了在文件未下载完毕前可以预览,若启用本功能,将至少优先下载首区块和尾区块各1M

bt.ratelimit_tcp_only: false

默认禁用TCP传输速率限制。若启用将侧重通过分析uTP的传输效率信息来控制TCP连接的上传下载速率,而不完全基于设定的全局传输限制

生效前题为bt.tcp_rate_control 启用

bt.scrape_stopped: false

默认禁止uT向tracker服务器查询本地已停止任务的种子和对等客户信息

bt.send_have_to_seed: true

默认启用给其他种子发送目前已下载区块数量的信息

bt.set_sockbuf: false

默认禁用通过定期检测TCP缓冲大小(so_sndbuf)进行调试的功能,调试基于上传速度而非延迟

bt.shutdown_tracker_timeout: 15

uT查询tracker服务器响应的等待时间期限,单位为秒,若设为0,uT将无限期等待直至tracker服务器响应

bt.shutdown_upnp_timeout: 5

uT查询路由upnp端口响应的等待时间期限,单位为秒,若设为0,uT将无限期等待直至路由upnp响应

bt.tcp_rate_control: true

默认启用,基于uTP的传输信息来控制TCP连接的传输速率

--------------------------------------------------------------------------------------

bt.transp_disposition: 15 * 可尝试31,内网无端口映射的用户建议启用uTP --------------------------------------------------------------------------------------

由于高校内教育网特殊的网络环境,经过多人长期试验,

Bt.transp_disposition的值设定为5的时候上传下载速度均较高且平稳,建议5,不开启UTP

与uTP的亲密接触:

uTP(或称 Micro Transport Protocol),首先于uT 1.8.x beta加入,初衷是减少BT对其它Internet应用的影响,现发展为自动带宽管理功能:

在最大限度利用带宽的同时减缓网络延迟和拥堵、增强网络穿透和传输效率并增益流量控制,对bt用户和ISP都是互利的。

uT原仅支持通过TCP连接的 http tracker ,TCP的优势在于双向互动机制兼顾数据传输的完整性、可控制性和可靠性,但复杂的校验与控制机制也使其没有UDP传输效率高

UDP优势在于带宽占用小、传输效率和连接成功率高,有益于内网无法实现端口映射的用户(如DHT连接),但UDP与TCP协议相比也存在无反向确认机制、无流量和序列控制等弊端;

uTP虽基于UDP协议但有所不同,uTP通过自身的框架机制和网络拥堵控制算法(Ledbat)进行带宽管理:

uTP在UDP分组中以自己独特的框架机制来实现与TCP大致相同的功能,同样带有时间戳并使用选择性确认分组SACK;

uTP的拥堵控制算法(Ledbat)可限制延时,当延时不严重时可最大限度利用带宽,并能通过uTP提供的信息用于选择TCP连接的传输率,即使在不作限速设置的情况下,也能减少网络拥堵产生,当双方客户端都启用uTP时,可见明显的上传/下载速度提升。

在1.8x版等uTP功能试验阶段,uTP的框架机制有诸多不完善之处,比如在本身带宽不高的情况下启用uTP反而导致不可预料的传输性能降低;uT2.0版uTP 官方正式默认启用后反馈尚好,但不排除仍存在问题

因此使用uTP新功能与否,取决于通过个人网络环境测试uTP是否起到应有的作用

但建议内网用户(若无法实现端口映射)还是启用uTP,以便通过uTP基于的UDP 协议更好的与网外用户连接:

如果设置值启用uTP, 则ut自动勾选"设置->任务->启用带宽管理"选项。

1 - 允许尝试传出 TCP 连接

2 - 允许尝试传出 uTP 连接

4 - 允许尝试传入 TCP 连接

8 - 允许尝试传入 uTP 连接

16 - 允许使用加强通讯的新uTP 报头(header) 但不向后兼容无此功能的版本

设置值为以上选项搭配组合相加之和,参考设置组合:

* 31 (16 + 8 + 4 + 2 + 1) = 允许所有方式(允许TCP+uTP的传出/传入连接并使用uTP新报头)

* 15 (1 + 2 + 4 + 8) = 允许TCP+uTP的传出/传入连接,但不使用uTP新报头* 10 (2 + 8) = 仅允许uTP传出/传入连接

* 5 (1 + 4) = 仅允许TCP传出/传入连接

https://www.360docs.net/doc/0b3437091.html,e_ban_ratio: true

默认启用特定条件下屏蔽对等客户端,是 bt.ban_ratio 和 bt.ban_threshold 生效的前提

即当超过bt.ban_threshold 限定的坏块总数并达到bt.ban_ratio 设定的好块坏块比例后屏蔽对等客户端

https://www.360docs.net/doc/0b3437091.html,e_rangeblock: true

默认启用特定条件下一次屏蔽整个CIDR地址块 (Classless InterDomain Routing,无类别域间路由选择),而非每次仅屏蔽单个独立的IPs:

1、若来自同个/24 CIDR 地址块的4个IPs被屏蔽,将屏蔽整个/24 CIDR 地址块

2、若来自同个/16 CIDR 地址块的/24范围内的4个CIDR地址块被屏蔽,将屏蔽整个/16位CIDR 地址块

2、若来自同个/8 CIDR 地址块的/16范围内的4个CIDR地址块被屏蔽,将屏蔽整个/8位CIDR 地址块

dht.rate: -1

指定 DHT 使用的带宽值,单位为kb每秒。默认值 -1则根据最大上传速率自动管理。

设置值计算方法为最大上传速度除以16,根据具体情况提高该值可提升DHT网络性能。

--------------------------------------------------------------------------------------

diskio.coalesce_writes_size: 2097152 (2M) * 建议改为4194304 (4M)

--------------------------------------------------------------------------------------

设定数据单次写入硬盘的尝试容量,单位bytes每秒。

生效前题为diskio.coalesce_writes 启用

现在BT大文件的分块很多是4M,设置恰当的单次写入容量配合uT的缓存机制可取得更好的效果。改为4M后可在uT“速度-->磁盘统计”看到平均单次写入容量接近4m,写入硬盘次数也相应减少

diskio.coalesce_writes: true

默认启用,尝试在硬盘使用最少的次数写入最多的容量。

此功能不会影响下载速度但稍微增加内存和CPU 的使用率。

--------------------------------------------------------------------------------------

diskio.flush_files: true * 建议改false

--------------------------------------------------------------------------------------

建议改禁用。默认开启(true)的目的是改善windows本身不佳的系统缓存管理、避免出现“内存泄漏”,但会每分钟执行关闭文件句柄,而导致频繁的硬盘操作。

--------------------------------------------------------------------

------------------

diskio.no_zero: true * 默认为开启true,留意旧版若默认为false请改true --------------------------------------------------------------------------------------

默认启用禁止"填零"写入预分配硬盘空间的功能。

实现本功能需要windows XP或更新版本且具备管理员权限;也可通过windows 组策略的“执行卷维护任务”设定使该功能对系统受限用户开启。"填零"写入硬盘的目的是擦除预分配空间中的原有数据,加强文件的保密性,因为该预分配空间中的数据访问权限对其他程序和用户是开放的,可能会造成敏感数据泄露。

但"填零"操作会减慢预分配空间进程,若在"常规---下载任务"勾选了"预先分配磁盘空间"(相对减少磁盘碎片)且当本功能为false,则bt下载任务建立后即对硬盘预分配空间进行长耗时和大数据量的"填零"写入,若此时因高速下载占满内存缓存而 "填零"尚未完成,将造成硬盘超载和下载速度骤降、也无法在硬盘写入已下载的数据。高速下载时diskio.no_zero务必开启为true,即跳过"填零"操作、尽早完成"预先分配磁盘空间",让硬盘数据写入顺利进行。

diskio.smart_hash: true

默认启用uT在内存中校验写入队列中的数据,避免写入硬盘后再重新读取和校验,对高速下载时减少硬盘读取次数非常有用

diskio.smart_sparse_hash: true

默认启用,改善某些windows版本对已实际完成写入硬盘的文件仍向uT报告为未完成的稀疏文件或数据量错误的信息

diskio.sparse_files: false

默认禁止按稀疏方式创建下载文件,该功能仅对正在写入的数据分配磁盘空间的功能,并通知系统整个文件的大小以预留足够的磁盘空间,可减少磁盘空间的实时占用但在某些情况下会导致磁盘碎片增加(如磁盘没有足够的预留空间写入稀疏文件,将导致文件不完整而变成分散的磁盘碎片)

1、稀疏文件功能仅支持NTFS格式分区

2、散列校验对稀疏文件比预分配磁盘空间文件能更快完成,因不必对空的预分配数据进行校验

3、在Vista/Win7系统,稀疏文件可能导致uT受到文件系统限制

4、稀疏文件功能不能在有磁盘限额的非管理员账号实现,将转为预分配磁盘空间的文件

5、若与“参数设置-->常规-->下载前预先分配磁盘空间”功能同时启用,将忽略稀疏文件功能而默认创建预分配磁盘空间文件

6、若与https://www.360docs.net/doc/0b3437091.html,pact_allocation同时使用,uT将为文件预留空间,但将按紧密增量写入方式创建文件

https://www.360docs.net/doc/0b3437091.html,e_partfile: true

默认启用,在选择性下载任务中对跳过的文件保存部分识别数据,uT依然会下载少量跳过文件的数据保存为dat文件以识别并避免为这些文件分配磁盘空间,该dat文件在下载任务移除时将同时删除。

若启用本功能,https://www.360docs.net/doc/0b3437091.html,pact_allocation功能将失效

gui.auto_restart: true

默认启用uT故障自动恢复功能。当uT在最小化时遇到故障且电脑已闲置超过1分钟,uT将自动重启并将故障信息发送给开发人员(不含故障存储或任何用户个人信息)。基于超频率的故障不应被用户忽视的考虑,若uT在1小时内发生1

次以上故障,uT在首次故障重启后若再出现故障将不再自动重启,而弹出提示框让用户选择如何操作。

gui.bypass_search_redirect: false

默认禁用用户自定义的搜索引擎,使用uT默认搜索引擎

h**p://https://www.360docs.net/doc/0b3437091.html,

https://www.360docs.net/doc/0b3437091.html,pat_diropen: false

默认禁用非正常界面浏览功能,若在uT遇到空白对话框等非正常界面,可尝试开启本功能

gui.default_del_action: 0

定义在uT界面工具栏点击“移除(Remove)”按钮或按键盘"Delete"键时uT对任务默认执行的操作。

设定值为0-3,其他值uT将视为无效将不执行任何操作:

0: 从任务列表移除任务(保留种子文件和下载内容, uT默认删除选项)

1: 从任务列表移除任务并删除种子文件(保留下载内容)

2: 从任务列表移除任务并删除下载内容(保留种子文件)

3: 从任务列表移除任务并删除种子文件和下载内容(完全删除,快捷方式为

Shift+Delete)

以上选项也可在uT界面设定:工具栏右键点击“移除(Remove)”图标时选择定义选项

gui.delete_to_trash: true

默认启用如果可能在执行“移除(Remove)”操作时将文件移动到回收站而非直接删除。

以上选项也可在uT界面设定:工具栏右键点击“移除(Remove)”图标时选择 "如果可能则移至回收站" 选项

gui.graphic_progress: true

默认启用以显示每个任务的完成率进度条

gui.log_date: true

默认启用在日志记录时间戳中显示日期

gui.piecebar_progress: false

默认禁用任务进度条不显示完成率数值

生效前提为 gui.graphic_progress 启用

gui.tall_category_list: true

默认启用自动调整分类窗格高度以适应显示内容。

gui.update_rate: 1000

设置程序界面的刷新间隔时间值, 单位为毫秒,uT将忽略小于500的数值并按500执行。

ipfilter.enable: true

默认启用 ipfilter.dat (IP过滤)文件并应用其规则

--------------------------------------------------------------------------------------

isp.bep22: false * 默认为禁用,切勿轻易启用,启用等于告知ISP本机正在进行BT

--------------------------------------------------------------------------------------

默认禁用本地 tracker发现功能,若启用uT将尝试通过一系列反向DNS查找本地ISP tracker来获取对等用户和缓存列表。

若你的ISP不欢迎BT,切勿轻易启用,启用等于告知ISP本机正在进行BT,PT 种子一般都禁用本地 tracker。

net.bind_ip: 空值

默认空值,可强制uT仅使用指定的网卡接受传入连接,在此输入要指定的网卡IP 地址即可

net.calc_overhead: false

默认禁用统计传输中的突发超载速率

net.limit_excludeslocal: false

默认禁用把本地用户间的传输纳入传输上限管理。

net.low_cpu: false

默认禁用,启用可稍微降低CPU占用率,禁用相对可提高传输速度

--------------------------------------------------------------------

------

net.max_halfopen: 8 * 请根据个人实际情况修改

--------------------------------------------------------------------------

指定uT可建立的最大并发连接数,其实这里的设置并非必需,影响连接的另一关键是bt.connect_speed定义的每秒可建立的最大连接数。过多的tcp/ip半开连接在有限带宽下反而会造成系统或路由设备超载,不如在合理的连接数下增强每个连接的传输效率。

在没有打补丁增加TCP/IP半开连接数的 XP SP2/SP3等有半开连接数限制的系统上此处设置值请保持默认值 8,打过补丁的也应设置为低于补丁定义的最高连接数,建议不超过50(但也有文章建议1000-2000,而且要破解限制连接数)

Vista/Winows7 系统请保持默认设置,切勿改变

net.outgoing_ip: 空值

默认空值,可强制uT仅使用指定的网卡发送所有传出连接,输入要指定的网卡IP地址即可。

注意 Windows 系统有时会忽略此设置而使用其他网卡传输,要解决此问题,请参阅微软知识库文章KB894564

net.outgoing_max_port: 0

设置uT用于传出连接的端口范围,若此处端口号设置错误或未包含

net.outgoing_port的设定值,将被忽略而仅使用net.outgoing_port设定的单一端口进行传出连接。

net.outgoing_port: 0

设置端口号值可强制uT使用单一端口进行传出连接。

通常情况下uT在windows默认的1024 - 5000 之间随机选择端口。该功能仅支持Windows 2000 以上系统,如果端口号设置错误该功能将被忽略。启用该功能并将传出端口号设置为与传入端口号相同,可减少NAT转发规则数目从而有效减少某些型号路由器发生崩溃的情况

net.upnp_tcp_only: false

默认禁止通过upnp转发至UDP端口,而只转发至TCP端口,避免某些路由将UDP 转发覆盖TCP转发。

net.utp_receive_target_delay: 100

此选项控制uTP检测对方传入连接延迟值,单位为毫秒。如果超时,将限制该连接传入带宽。设置值越高,允许的延迟越高。

net.utp_target_delay: 100

此选项控制uTP检测连接延迟值,单位为毫秒。如果超时,将限制该连接带宽。设置值越高,允许的延迟越高。

net.wsaevents: 6

设置值有可能解决某些莫名其妙的防火墙问题,可逐步降低该值并查看是否有效

peer.disconnect_inactive: true

默认启用达到peer.disconnect_inactive_interval 设定的秒数后断开与静态等待用户连接的功能

peer.disconnect_inactive_interval: 300

设置对等用户被视为无传输活动的静态等待用户的时间,单位为秒,uT将忽略设置低于300的值并按300执行

https://www.360docs.net/doc/0b3437091.html,zy_bitfield: true

默认启用,避免某些ISP通过查询完整位段来屏蔽BT,启用本功能uT将不发送完整位段而仅发送位段样本,从穿避免被ISP屏蔽

peer.resolve_countryuTorrent: false

默认禁用通过DNSBL互联网IP数据库来解析IP所属国家,若启用本功能将忽略uT设置目录中自定义的flags.conf和flags.bmp国旗标识文件,而使用uT内置的国旗标志

queue.dont_count_slow_dl: true

默认启用,对于下载速度低于queue.slow_dl_threshold设置值的下载任务,uT 将在队列设置的最大活动下载任务数限制中忽略,从而启动队列中的下一任务

queue.dont_count_slow_ul: true

默认启用,对于上传速度低于queue.slow_ul_threshold设置值的上传任务,uT 将在队列设置的最大活动任务数限制中忽略,从而启动队列中的下一任务

queue.prio_no_seeds: true

默认启用对无种的任务进行优先做种上传

queue.slow_dl_threshold: 1000

设置下载任务在队列中被视为无活动任务的最小下载速度值,单位为bytes每秒生效前提为 queue.dont_count_slow_dl 启用

queue.slow_ul_threshold: 1000

设置上传任务在队列中被视为无活动任务的最小上传速度值,单位为bytes每秒生效前提为 queue.dont_count_slow_ul 启用

https://www.360docs.net/doc/0b3437091.html,e_seed_peer_ratio: true

默认启用,uT将基于群集中的健康度(种子和用户之比)决定做种顺序优先级,比值越低优先级越高。如果群集中用户数量为0且queue.dont_count_slow_ul 被禁用,该任务将被分配最低的优先级,如此时queue.dont_count_slow_ul已启用,则该群集被视为有1个用户存在。

rss.feed_as_default_label: true

默认启用,对从RSS广播中添加的无标签BT任务,将使用RSS广播名称作为默认标签

rss.smart_repack_filter: true

默认启用,uT将优先选择标明为REPACK的RSS项目,如果RSS同时广播无REPACK 标明的项目。

rss.update_interval: 15

设置每个RSS广播更新的间隔时间,单位为分钟,uT将忽略小于5的数值并按5执行

sys.enable_wine_hacks: true

默认启用,允许uT忽略发现的bug(如列表视图闪烁,或添加新任务时出现不当的文件列表显示对话框等)。本选项对windows操作系统不会造成影响,改变本选项设置必须重启uT程序。

webui.token_auth: true

默认启用Web UI 的 TOKEN认证系统,防止使用浏览器会话验证进行跨站式请求伪造(CSRF, cross-site request forgery)攻击来控制uT,该选项不向后兼容无法识别TOKEN系统的应用程序

===========================================

uTorrent 的加密模式

===========================================

选项---〉设置---〉任务---〉协议加密---〉传出连接:

Azureus与uTorrent共同制定的加密协议, 以绕过ISP封锁或干扰BT

禁用---传出不加密,但接受加密传入

启用---尝试传出加密,若连接失败,转为不加密传出

强制---尝试传出加密,若连接失败,仍保持加密传出

允许传入旧式连接---允许传入旧式的非加密连接,建议勾选,否则将拒绝所有未加密的传入连接

以下2种模式无论何种, 均接受加密的传入连接且为双向加密:

所有模式 (加密/非加密连接均接受, ut默认模式)

传出连接---〉启用

允许传入旧式连接---〉勾选

强制模式 (仅接受加密连接,拒绝所有未加密的连接申请,可增强反吸血保护) 传出连接---〉强制

允许传入旧式连接---〉不勾选

===========================================

uTorrent 对等用户标识缩写含义

===========================================

下载 (50.92 KB)

2010-5-3 09:41

了解对等用户标识缩写含义,知己知彼,有助于分析一些传输问题

客户端即我方对等用户端即对方

D = 正在下载 (我方有意从对方下载且被接受)

d = 对方拒绝 (我方有意从对方下载但被拒绝)

U = 正在上传 (对方有意从我方下载且被同意)

u = 拒绝上传 (对方有意从我方下载但被拒绝)

K = 我方无意下载 (我方无意从对方下载虽对方未拒绝连接)

? = 对方无意下载 (对方无意从我方下载虽我方未拒绝连接)

F = 错误用户(对方曾传来散列校验失败的区块, 但还未达屏蔽对方的程度) S = 冷怠用户(静态等待,对方向我方无上传达1分钟, 按冷待规则不上传数据

给对方, 但未屏蔽对方)

O = 宽容用户(对方给我方上传速率较低,在无其他更好的用户选择前,不拒绝对方。uT在用户接入优先级排序上有一套轮循optimistic unchoke规则)

I = 已建立传入连接的用户

X = 通过用户交换(PEX)列表获取的用户或IPv6/IPv4穿遂的用户

H = 通过DHT获取的用户

h = 通过UDP内网穿透(UDP Hole Punching)连接的用户

L = 通过本地用户发现获取的用户

P = 通过uTP通讯和传输的用户

E = 所有模式用户 (加密或非加密连接均接受)

e = 强制模式用户 (仅接受加密连接)

性能优化的方法和技巧

性能优化方法和技巧:概述 性能优化有三个层次: ?系统层次 ?算法层次 ?代码层次 系统层次关注系统的控制流程和数据流程,优化主要考虑如何减少消息传递的个数;如何使系统的负载更加均衡;如何充分利用硬件的性能和设施;如何减少系统额外开销(比如上下文切换等)。 算法层次关注算法的选择(用更高效的算法替换现有算法,而不改变其接口);现有算法的优化(时间和空间的优化);并发和锁的优化(增加任务的并行性,减小锁的开销);数据结构的设计(比如lock-free的数据结构和算法)。 代码层次关注代码优化,主要是cache相关的优化(I-cache, D-cache相关的优化);代码执行顺序的调整;编译优化选项;语言相关的优化技巧等等。 性能优化需要相关的工具支持,这些工具包括编译器的支持;CPU的支持;以及集成到代码里面的测量工具等等。这些工具主要目的是测量代码的执行时间以及相关的cache miss, cache hit等数据,这些工具可以帮助开发者定位和分析问题。 性能优化和性能设计不同。性能设计贯穿于设计,编码,测试的整个环节,是产品生命周期的第一个阶段;而性能优化,通常是在现有系统和代码基础上所做的改进,属于产品生命周期的后续几个阶段(假设产品有多个生命周期)。性能优化不是重新设计,性能优化是以现有的产品和代码为基础的,而不是推倒重来。性能优化的方法和技巧可以指导性能设计,但两者的方法和技巧不能等同。两者关注的对象不同。性能设计是从正向考虑问题:如何设计出高效,高性能的系统;而性能优化是从反向考虑问题:在出现性能问题时,如何定位和优化性能。性能设计考验的是开发者正向建设的能力,而性能优化考验的是开发者反向修复的能力。两者可以互补。

提升存储性能的最佳方法

提升存储性能的最佳方法 从基于策略的归档到虚拟化技术,一些巧妙方法可以让企业存储系统处于最佳运行状态。 如今,每家存储硬件或者数据管理软件厂商都称自己的产品有助于 优化存储资源。专家们说,最让用户感兴趣的是另外两项技术:存储虚拟化和归档。 作为新一代数据中心的必备技术,存储虚拟化备受关注,原因是它能够把不同的物理存储系统(往往来自不同厂商)合并到一个逻辑存储池,里面的共同资源管理及配置起来更简单。经销商CDW的存储专家Josh Howard说,随着许多企业的SAN三年使用寿命即将结束,这项技术已经成熟。 Howard说:“如果你着眼于改用下一个存储架构,你会遇到数据迁移问题,这时你不得不考虑聘请数据迁移专业服务商;或者准备留出很长的停机时间,把这些数据迁移到新架构上。”他认为,存储虚拟化产品可以解决这个问题的一部分,因为它在后台执行大量的数据迁移工作。这些产品甚至可帮助企业重复利用存储系统,赋予它们新角色。 Howard说,从存储优化的角度来看,虚拟化技术成了实现灵活性、提高利用率的手段之一。他说:“虚拟化技术具有灵活性,包括可以使用不同品牌的存储产品。它让你能够购买真正廉价的磁盘,而不是大厂商的那种廉价磁盘。” Howard认为,从存储利用率的角度来看,如果企业使用的多个存储架构来自多家厂商,实施了虚拟化技术后,可能会发现可用磁盘空间的利用率从40%提升到70%~80%。至于归档方面的例子,Howard和美国企业管理协会的Karp认为,一些归档应用软件有助于把策略转变成计算机驱动的规则,从而可以把数据从高性能生产磁盘阵列自动转移到较低级别的存储层上。 巧用监测工具 每个IT人员都知道这个痛苦事实:应用程序或存储系统因为基础设施没有运行在最佳状态下而出现暂停或者速度慢得要命。 Raul Robledo是Affinion集团设在康涅狄格州特兰伯尔办事处的存储专家,最近他对此有切身体会。今年早些时候,这家全球营销公司的50TB存储区域网络(SAN)出现了严重的停用现象。Robledo后来发现,原因是SAN的交换机间链路(ISL)带宽已经饱和。他说:“当时众多流量通过交换机端口传输,这为应用程序带来了许多额外进程,而它们又得不到响应。这引发了严重的连锁反应,导致我们的部分Web应用程序无法使用。” 为了帮助诊断及纠正ISL的带宽饱和问题,SAN管理员使用了开源产品提供商OrcaWare Technologies的Orca,以便通过SNMP收集来自交换机的数据。 虽然Orca在这个例子中证明了它的重要性,但Robledo说他需要一种为了优化SAN运行状态而设计的工具。他说,与专门用于实时监控SAN性能的产品相比,Orca及其他类似工具需要更多的手动工作、知识及定制。 Robledo开始认真寻找稳定可靠的SAN性能监控工具。后来他求助于Onaro这家存储服务管理厂商。Onaro声称,最近发布的Application Insight 2.0实时提供了应用程序到阵列的状况,可以体现存储资源的使用情况和效率,同时提供了以应用程序为中心的监控和报告功能,可以了解存储基础设施的性能。 Robledo对产品进行了概念证明测试后,认为该工具将有助于防止潜在的性能问题成为实际问题。他说:“结合使用两个产品即SANscreen Foundation和Application Insight后,在业务

Sql Server实用操作-数据库一致性检测工具(DBCC)

在危急时刻,数据库一致性检测(DBCC)可能是你最重要的工具。本文向你简单介绍DBCC 的功能,它们包括: 检测表和相关目录的完整性。 检测整个数据库。 检测数据库页的完整性。 重建任何指定表中的目录。 你为何需要学习DBCC 如果你甚至还不知道为何使用DBCC,下面提供一些原因: 需要不断分割数据库页(表和目录),这可能会破坏分配。 目录可能遭到破坏,或效率降低。 SQL Server引擎有时会误解你的意图。 需要大量更新时,事情可能会很麻烦(记住,任何指定的更新实际为删除和插入)。 单个页面,虽然仍然“健康”,但可能会失去它们的最优存储足迹。 如何运行DBCC 你可以用两种方法运行DBCC:通过命令行窗口或查询分析器(Query Analyzer)窗口。如果你认为必要,你还可以确定其操作的时间。(我从未感到有必要这样做,因为在微软的所有产品中,我对SQL Server的稳定性最为自信。我认为它是雷蒙德推出的最佳产品。但是,感觉也可能出错。) DBCC命令包括以下扩展: CheckDB:检测整个数据库的一致性,是检查数据库破坏的基本方法。 CheckTable:检测特定表的问题。 CheckAlloc:检测数据库的单个页面,包括表和目录。 Reindex:重建某个特定表的目录。 CacheStats:说明当前存储在内存缓存中的对象。 DropCleanBuffers:释放当前存储在缓冲区中的所有数据,这样你就可以继续进行检测,而不必使用前面的结果。 Errorlog:删除(缩短)当前日志。你可以考虑确定包含这个命令的操作的时间,一个星期左右运行一次。 FlushProclnDB:清除特定数据库的存储过程缓存(使用它的数据库id而不是名称)。使用下列代码找出id: SELECT dbid FROM master.dbo.sysdatabases WHERE name = ' IndexDefrag:减少目录分裂,但不给文件加锁,以便用户能够继续应用数据库。CheckCatalog:检测特定数据库表及表之间的一致性(后者意味着使用外键等。) 如何使用这五个扩展 DBCC首先建立一个数据库快照(在某些情况下,如应用一个Master、TempDB或只读数据库时)。附带条件:要使用DBCC,数据库必须处于单用户模式。 使用DBCC CheckDB 此命令保证: 数据与目录页正确连接。 目录被正确分类,并保持最新。 指针一致。 每个页面的数据保持最新。

Linux操作系统性能调优的方法

按照传统,Linux不同的发行版本和不同的内核对各项参数及设置均做了改动,从而使得系统能够获得更好的性能。下边将分四部分介绍在Red Hat Enterprise Linux AS和SUSE LINUX Enterprise Server系统下,如何用以下几种技巧进行性能的优化: QUOTE: 1、Disabling daemons (关闭 daemons) 2、Shutting down the GUI (关闭GUI) 3、Changing kernel parameters (改变内核参数) 4、Kernel parameters (内核参数) 5、Tuning the processor subsystem(处理器子系统调优) 6、Tuning the memory subsystem (内存子系统调优) 7、Tuning the file system(文件系统子系统调优) 8、Tuning the network subsystem(网络子系统调优) 1 关闭daemons 有些运行在服务器中的daemons (后台服务),并不是完全必要的。关闭这些daemons可释放更多的内存、减少启动时间并减少CPU处理的进程数。减少daemons数量的同时也增强了服务器的安全性。缺省情况下,多数服务器都可以安全地停掉几个daemons。 Table 10-1列出了Red Hat Enterprise Linux AS下的可调整进程. Table 10-2列出了SUSE LINUX Enterprise Server下的可调整进程.

注意:关闭xfs daemon将导致不能启动X,因此只有在不需要启动GUI图形的时候才可以关闭xfs daemon。使用startx命令前,开启xfs daemon,恢复正常启动X。 可以根据需要停止某个进程,如要停止sendmail 进程,输入如下命令: Red Hat: /sbin/service sendmail stop SUSE LINUX: /etc/init.d/sendmail stop

高速缓冲存储器.

3.7 高速缓冲存储器 高速缓冲存储器的功能是提高CPU数据输入/输出的速率,突破所谓的存储器瓶颈问题,即CPU与存储系统间数据传送带宽限制。高速缓冲存储器能以极高的速率进行数据的访问,但因其价格高昂,所以只在CPU和主存之间添加少量的Cache,利用程序的局部性原理来进行工作。 3.7.1 程序访问的局部性原理 程序访问的局部性有两个方面的含义:时间局部性和空间局部性。时间局部性是指最近的访问项(指令/数据)很可能在不久的将来再次被访问(往往会引起对最近使用区域的集中访问),而空间局部性是指一个进程访问的各项地址彼此很近。 换句话说,就是最近的、未来要用的指令和数据大多局限于正在用的指令和数据,或是存放在与这些指令和数据位置上邻近的单元中。这样,就可以把目前常用或将要用到的信息预先放在存取速度最快的存储器中,从而使CPU的访问速度大大提高。 依据局部性原理,把主存储器中访问概率高的内容存放在Cache中,当CPU需要读取数据时,首先在Cache中查找是否有所需内容,如果有则直接从Cache中读取;若没有再从主存中读取该数据,然后同时送往Cache和CPU。如果CPU需要访问的内容大多都能在Cache中找到(称为命中),则可以大大提高系统性能。 3.7.2 Cache的基本工作原理

如图3-13所示给出了Cache的基本结构。Cache和主存都被分成若干个大小相等的块,每块由若干字节组成。由于Cache的容量远小于主存的容量,所以Cache的块数要远少于主存的块数,它保存的信息只是主存中最活跃的若干块的副本。用主存地址的块号字段访问Cache标记,并将取出的标记和主存地址的标记字段相比较,若相等,说明访问Cache有效,称Cache命中,若不相等,说明访问Cache无效,称Cache不命中或失效,而此时需要从主存中将该块取出至Cache中。 当CPU发出读请求时,如果Cache命中,就直接对Cache 进行读操作,与主存无关;如果Cache不命中,则仍需访问主存,并把该块信息一次从主存调入Cache内。若此时Cache已满,则须根据某种替换算法,用这个块替换掉Cache中原来的某块信息。 当CPU发出写请求时,如果Cache命中,有可能会遇到Cache与主存中的内容不一致的问题,处理的方法主要有两种,一是同时写入Cache和主存,称为写直达法;二是将信息暂时只写入Cache,并用标志将该块加以注明,直到该块从Cache中替换出来时才一次写入主存,称为写回法。如果不命中,就直接把信息写入主存,而与Cache无关。

网站性能优化:页面静态化和二级缓存

网站性能优化:页面静态化和二级缓存 2009-08-29 23:41:20| 分类:java | 标签:无|字号大中小订阅 性能方案: 1.页面静态化。只适合那些不会经常发生变化的页面(不适合条件查询和分页)。 对于经常发生变化的内容,如何进行性能优化 2.缓存方案。 1.页面缓存(性能高与二级缓存) 2.业务层缓存(二级缓存,只缓存对象),hibernate二级缓存 页面缓存 1.页面缓存缓存的是servlet向页面输出的html代码,我们使用OsCahe作为页面缓存产品。OsCahe也可以用作二级缓存。 什么是OSCache OSCache标记库由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是个一个广泛采用的高性能的J2EE 缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。OSCache有以下特点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API--OSCache API给你全面的程序来控制所有的OSCache特性。永久缓存--缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。支持集群--集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。 使用OsCahe如何实现页面全局和局部缓存。 只需要学习几个标签 采用map结构的对象缓存内容,这个缓存的key就是我们请求的路径。以后只要我们访问相同的路径,就可以在map中找到这个缓存的内容。但是如果我们在路径后面加上参数,map 中就找不到了。缓存就不会被使用了。 所以我们可以自己指定缓存的key的名称。 scope可以定义这个缓存的使用范围,session只对同一个会话进行缓存 time指定缓存时间,默认是1个小时。过时以后,旧缓存会丢失,重新建立新的缓存。 refresh:强行清除缓存。里面可以接收el表达式,true表示重新建立缓存。默认为false。 下面是一些示例 我们使用Oscache的标签来进行页面的局部缓存.使用方法如下: <%@taglib uri="https://www.360docs.net/doc/0b3437091.html,/oscache" prefix="cache"%>

关于RapidIO嵌入式系统互连协议的介绍

关于RapidIO嵌入式系统互连协议的介绍 作者:剑武江南来源:博客园 发布时间:2009-09-24 16:09 阅读:252 次 RapidIO的简介 RapidIO互连架构是一个开放的标准,满足了嵌入式基础设施在应用方面的广泛需要。可行的应用包括连接多处理器、存储器、网络设备上的存储器映射I/O 器件、存储子系统和通用计算平台。 RapidIO互连定义包括两类技术:面向高性能微处理器及系统互连的并行接口;面向串行背板、DSP和相关串行控制平面应用的串行接口。串行和并行RapidIO具有相同的编程模型、事务处理和寻址机制。 RapidIO支持的编程模型包括基本存储器映射I/O事务、基于端口的消息传递和基于硬件一致性的全局共享分布式存储器。RapidIO也提供各种错误检测机制,还提供定义良好的硬件和基于软件的架构以报告并纠正传输错误。 RapidIO互连被定义为分层结构,在保证后向兼容性的同时提供了可扩展性和未来增强的可能。 RapidIO互连技术 RapidIO采用三层分级体系结构。逻辑层规范位于最高层,定义全部协议和包的格式,它们为端点器件发起和完成事务提供必要的信息。传输层规范在中间层,定义RapidIO地址空间和在端点器件间传输所需的路由信息。物理层规范在整个分级结构层的底部,包括器件级接口的细节,如包传输机制、流量控制、电气特性和低级错误管理。 RapidIO技术主要面向高性能嵌入式系统的互连通信,它采用高性能LVDS 技术,可以在4对差分线上实现10Gbps的有效传输速率,而且具有万兆以太网、PCI express更高的传输效率。由于RapidIO在路由、交换、容错纠错、使用方便性上有较完善的考虑,可以实现基于硬件的高性能可靠数据传输,所以必将在嵌入式系统、3G和3G之后的Beyond3G、4G移动通信基站、高性能数字信号处理系统等中得到广泛应用。 大多数电子系统实现三个基本功能:处理数据、来回移动数据和存储数据,即在处理和传输数据时,也在沿途不同的地方存储这些数据。开发RapidIO技术正是为了在嵌入式系统内提供以交换互连而非总线为基础的传输数据的标准方法,从而能够替代很多现有总线技术或基于交换的技术如PCI、VME、Utopia、Infiniband、Ethernet(在系统内使用)或者SPI4。 RapidIO的应用 RapidIO属于系统内部互连技术。目标应用是高性能的嵌入式设备市场中的系统内部互连。 RapidIO互连适用于多器件紧耦合的工作环境。RapidIO可以用于PCI到PCI 透明桥接,允许扁平结构并使用更少的引脚传输更远的距离。 RapidIO非常适合于热插拔应用,因为RapidIO的点到点拓扑结构可以使设备的抽离对相邻设备或子系统仅有非常少的电气影响,甚至没有影响。

系统性能优化方案

系统性能优化方案 (第一章) 系统在用户使用一段时间后(1年以上),均存在系统性能(操作、查询、分析)逐渐下降趋势,有些用户的系统性能下降的速度非常快。同时随着目前我们对数据库分库技术的不断探讨,在实际用户的生产环境,现有系统在性能上的不断下降已经非常严重的影响了实际的用户使用,对我公司在行业用户内也带来了不利的影响。 通过对现有系统的跟踪分析与调整,我们对现有系统的性能主要总结了以下几个瓶颈: 1、数据库连接方式问题 古典C/S连接方式对数据库连接资源的争夺对DBServer带来了极大的压力。现代B/S连接方式虽然不同程度上缓解了连接资源的压力,但是由于没有进行数据库连接池的管理,在某种程度上,随着应用服务器的不断扩大和用户数量增加,连接的数量也会不断上升而无截止。 此问题在所有系统中存在。 2、系统应用方式(架构)问题(应用程序设计的优化) 在业务系统中,随着业务流程的不断增加,业务控制不断深入,分析统计、决策支持的需求不断提高,我们现有的业务流程处理没有针对现有的应用特点进行合理的应用结构设计,例如在‘订单、提油单’、‘单据、日报、帐务的处理’关系上,单纯的数据关系已经难以承载多元的业务应用需求。 3、数据库设计问题(指定类型SQL语句的优化)

目前在系统开发过程中,数据库设计由开发人员承担,由于缺乏专业的数据库设计角色、单个功能在整个系统中的定位模糊等原因,未对系统的数据库进行整体的分析与性能设计,仅仅实现了简单的数据存储与展示,随着用户数据量的不断增加,系统性能逐渐下降。 4、数据库管理与研究问题(数据存储、物理存储和逻辑存储的优化) 随着系统的不断增大,数据库管理员(DBA)的角色未建立,整个系统的数据库开发存在非常大的随意性,而且在数据库自身技术的研究、硬件配置的研究等方面未开展,导致系统硬件、系统软件两方面在数据库管理维护、研究上无充分认可、成熟的技术支持。 5、网络通信因素的问题 随着VPN应用技术的不断推广,在远程数据库应用技术上,我们在实际设计、开发上未充分的考虑网络因素,在数据传输量上的不断加大,传统的开发技术和设计方法已经无法承载新的业务应用需求。 针对以上问题,我们进行了以下几个方面的尝试: 1、修改应用技术模式 2、建立历史数据库 3、利用数据库索引技术 4、利用数据库分区技术 通过尝试效果明显,仅供参考!

有效提升存储性能的十大方法

目前存储行业中很多公司都在开发与存储优化相关的产品和技术,既有优化主机端访问的方案,也有提升SAN存储性能的技术,这是一个很有潜力的领域。在这里,本文将要介绍一些能够有效提升存储性能的方法,而以往我们却经常忽视它 们。 首先,排除故障 网络存储的应用环境是相当复杂的,各种不 同的硬件和软件要能够顺利的实现互操作。 所以,导致存储系统性能不佳的最常见的原 因可能是配置错误,也可能是一个或多个组 件发生故障。因此,优化存储性能的第一步 就是要看看现有的存储I/O堆栈是不是有问 题。 检查服务器和存储阵列的日志,看看是否有物理设备故障告警、I/O重传、路径切换以及超时等明确的提示。再试着去逐个分析故障组件,从与线缆相关的连接组件开始。收发端口以及线缆的问题不容易发现,但通常会严重的影响性能。在遭受物理冲击的时候,这些东西经常会损坏,因此,在数据中心里安装、迁移或搬走设备时要特别的小心。 1. 更新固件和驱动程序 厂商会不断的通过软件升级来修复产品中的bug并增加新功能。聪明的做法是把存储网络中所有组件的驱动程序和固件都升级到最新版本,定期做,提前测试、调试和升级。我们看到Microsoft和VMware都在积极地为其产品—Windows 和vSphere的存储部分增加新的性能增强特性,但通常我们看不到太多的宣传。比如Microsoft推出的SMB 2.0和2.1,可以明显的提升Windows文件共享的性能,尤其是在低带宽的网络环境中。还有新版的VMFS和 NTFS文件系统在性能和可扩展性方面也有改善。所以,平时要多浏览存储方面的博客和媒体,以便了解最新的相关动态。 要注意的是,并不是所有的版本升级都值得我们花费时间和精力,而且有时候升级的风险还很高。所以,首先要确保所有相关的厂商能够支持你现有的设备及配置,并且有充分的测试,绝对不能在生产系统中使用测试版代码。作为一个系统管理员,我倾向于保守一些,我会等到有其他人出了相关验证报告之后,自己才会尝试升级,以免冒险。 2.降低负载 大多数调优的方法都着眼于定位和消除存储的性能瓶颈,但是换一个角度,也许我们还应该考虑如何减少I/O负载的产生。比如,同数据库管理员一起对查询的效率和性能进行调优,就可以节省大量的查询等待时间。 所以,减少I/O负载对每个人和每个应用来说都是有好处的。

db2对缓冲池的性能优化

db2 对缓冲池的性能优化 博客分类: DB2 db2 对缓冲池的性能优化 需求:因为项目开始的时候没有对DB2数据库进行深入的熟悉,所以造成项目后期做性能测试的时候,导致应用访问过慢,后来决定从数据方面做做一下性能优化,主要在于缓冲池方面。 解决方案:因为数据库中只有一个常规表空间表空间USERSPACE1和一个缓冲池 IBMDEFAULTDP(1G),所以决定重新再建一个大的缓冲池BP2,将USERSPACE1赋给BP2 CREATE BUFFERPOOL BP2 SIZE 2048 PAGESIZE 4K; ALTER TABLESPACE USERSPACE1 BUFFERPOOL BP2; 附注: 以下为对网上资源学习后的一个总结: 1、表空间 I、数据存储层级关系:数据库-->表空间-->容器-->表, II、表空间分类: 目录表空间 特性:每个数据库只有一个目录表空间,它是在发出CREATE DATABASE 命令时创建的. 目录表空间被DB2 命名为SYSCATSPACE, 用途:它保存了系统目录表; 常规表空间

特性:创建数据库时指定该表空间的缺省名为USERSPACE1。长表空间是可选的,缺省情况下一个都不创建, 用途:保存表数据和索引、还可以保存LOB之类的长数据; 系统临时表空间 特性:随数据库创建的系统临时表空间的缺省名为TEMPSPACE1, 用途:用于存储SQL 操作(比如排序、重组表、创建索引和连接表)期间所需的内部临时数据; 以上是由系统管理的空间(SMS),必须有一个 以下是由数据库管理的空间(DMS),可选 长表空间 用途:用于存储长型或LOB 表列,存储结构化类型的列或索引数据 用户临时表空间 用途:存储已声明的全局临时表 LOB(large object)的定义: 是一种用于存储大对象的数据类型,如医学记录(如X-射线)、视频、图像等。LOB有三种类型:BLOB:Binary Large Object、 CLOB:Character Large Object、DBCLOB:Double-byte Character Large Object。每个LOB可以有2GB III、页大小(暂无): IIII、创建表空间: 最有效的表空间设置属性:PAGESIZE(表空间大小)、EXTENTSIZE(将数据写入到下一个容器之前写入到当前容器中的数据的页数)和PREFETCHSIZE(预取)

CMP中Cache一致性协议的验证

CMP中Cache一致性协议的验证 摘要: CMP是处理器体系结构发展的一个重要方向,其中Cache一致性问题的验证是CMP设计中的一项重要课题。基于MESI一致性协议,本文建立了CMP的Cache一致性协议的验证模型,总结了三种三种验证方法验证方法——状态列举法、模型检验法和符号状态法,并给出了每一种方法的复杂性分析。关键词: CMP Cache一致性状态列举模型检验符号状态模型 集成电路工艺的发展使得芯片的集成度不断提高,一种新型体系结构——CMP(Chip Multiprocessor ——片上多处理器)应运而生,通过在一个芯片上集成多个微处理器核心来提高程序的并行性。多个微处理器核心可以并行地执行程序代码,具有较高的线程级并行。由于CMP采用了相对简单的单线程微处理器作为处理器核心,使得CMP具有高主频、设计和验证周期短、控制逻辑简单、扩展性好、易于实现、功耗低、子通信延迟低等优点。此外,CMP还能充分利用不同应用的指令级并行和线程级并行,成为处理器体系结构发展的一个主要趋势。 在CMP中,多个处理器核心对单一内存空间的共享使得处理器和主存储器之间的速度差距的矛盾更加突出,因此CMP设计必须采用多级高速缓存Cache,通过层次化的存储结构来缓解这一矛盾。图1给出了共享内存的CMP系统模型系统模型。与常规SMP系统类似,CMP 系统必须解决由此而引发的Cache一致性问题以及一致性验证问题。采用什么样的Cache一致性模型与它的验证方法都将对CMP的整体设计与开发产生重要影响。从CMP中Cache 一致性协议的验证技术的发展来看,目前应用比较广的验证方法有状态列举法[1]、模型检验法[2][3]、符号状态模型法[4]三种。本文结合CMP的特点,建立了基于MESI一致性协议的CMP验证模型,并在此模型基础上分析了这三种验证方法的基本原理,每一种方法的复杂性分析及优缺点。1 Cache一致性协议的建模从本质上看Cache一致性协议是由一些过程组成的,这些过程包括Cache与内存控制器之间交换信息以及对处理器事件做出的反应。因此用有限状态机有限状态机模型来描述Cache一致性协议是一件很自然的事情。Cache一致性协议可以在三种不同的层次上建立验证建模。最高层次是对整个协议行为的抽象,中间层次是在系统/消息传递一级进行抽象,最低层次则是在结构模型一级进行抽象,表1给出了这三个层次的抽象模型的特点[5]。 目前对Cache一致性协议验证研究中,主要是对一致性协议在系统级系统级进行模型抽象。这主要有三方面的原因:首先,在行为级的抽象中把所有的状态转换操作都看作是原子操作是不切合实际的。其次,在行为级层次上进行的验证实际作用不大。最后,由于系统复杂性的急剧增加,在结构模型的层次上验证一个Cache一致性协议是不可行的。在系统级上对Cache一致性协议进行验证具有相对适中的复杂性。在这个层次上,可以通过有限状态机之间的消息传递来描述各个组件间的操作,加深对系统各个组件间相互作用的理解。此外,基于有限状态机的模型使得我们可以应用层次性验证的方法。即首先在系统级的层次上验证协议的正确性,之后就可以进入到更加低级的层次去验证具体的实现了。2 Cache一致性协议的验证方法2.1 系统模型为了重点说明验证方法原理,减少具体验证过程的复杂性,本文所用的验证分析模型由两个相同的处理器组成,每个处理器有一个Cache;每个Cache 有一个Cache行,应用MESI一致性协议。Cache的有限状态机具有四个状态[6]:M:修改状态,E:独占状态,S:共享状态, I:无效状态。图2给出了验证模型,图3给出了MESI 一致性协议的有限状态机。 应该指出,建立只有一个Cache行的系统模型对于大多数的Cache协议验证都是足够的。这是由于协议执行的粒度是Cache行。而对于执行粒度是word的Cache协议,就必须建立起每一个Cache行有几个word的模型,但是验证的基本原理都是相同的。2.2 状态列举法(State

安卓性能优化方案

随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要求远远高于PC的桌面应用程序。以上理由,足以需要开发人员更加专心去实现和优化你的代码了。选择合适的算法和数据结构永远是开发人员最先应该考虑的事情。同时,我们应该时刻牢记,写出高效代码的两条基本的原则:(1)不要做不必要的事;(2)不要分配不必要的内存。 我从去年开始接触Android开发,以下结合自己的一点项目经验,同时参考了Google的优化文档和网上的诸多技术大牛给出的意见,整理出这份文档。 1. 内存优化 Android系统对每个软件所能使用的RAM空间进行了限制(如:Nexus o ne 对每个软件的内存限制是24M),同时Java语言本身比较消耗内存,d alvik虚拟机也要占用一定的内存空间,所以合理使用内存,彰显出一个程序员的素质和技能。 1) 了解JIT 即时编译(Just-in-time Compilation,JIT),又称动态转译(Dynamic Translation),是一种通过在运行时将字节码翻译为机器码,从而改善字节码编译语言性能的技术。即时编译前期的两个运行时理论是字节码编译和动态编译。Android原来Dalvik虚拟机是作为一种解释器实现,新版

(Android2.2+)将换成JIT编译器实现。性能测试显示,在多项测试中新版本比旧版本提升了大约6倍。 详细请参考https://www.360docs.net/doc/0b3437091.html,/cool_parkour/blog/item/2802b01586e22cd8a6ef3f6b. html 2) 避免创建不必要的对象 就像世界上没有免费的午餐,世界上也没有免费的对象。虽然gc为每个线程都建立了临时对象池,可以使创建对象的代价变得小一些,但是分配内存永远都比不分配内存的代价大。如果你在用户界面循环中分配对象内存,就会引发周期性的垃圾回收,用户就会觉得界面像打嗝一样一顿一顿的。所以,除非必要,应尽量避免尽力对象的实例。下面的例子将帮助你理解这条原则: 当你从用户输入的数据中截取一段字符串时,尽量使用substring函数取得原始数据的一个子串,而不是为子串另外建立一份拷贝。这样你就有一个新的String对象,它与原始数据共享一个char数组。如果你有一个函数返回一个String对象,而你确切的知道这个字符串会被附加到一个Stri ngBuffer,那么,请改变这个函数的参数和实现方式,直接把结果附加到StringBuffer中,而不要再建立一个短命的临时对象。 一个更极端的例子是,把多维数组分成多个一维数组: int数组比Integer数组好,这也概括了一个基本事实,两个平行的int数组比(int,int)对象数组性能要好很多。同理,这试用于所有基本类型的组合。如果你想用一种容器存储(Foo,Bar)元组,尝试使用两个单独的Foo[]

浅谈高速缓冲存储器

浅谈高速缓冲存储器 缓冲存储器用在两个工作速度不同的硬件之间,在交换信息过程中起到缓冲作用。它能提高计算机系统的工作效益。下面主要谈谈两种高速缓冲存储器、它的作用及发展趋势。一、高速缓冲存储器Cache 我们通常都认为计算机的速度是由CPU决定的,但是还要有其它的硬件或软件来充分发挥它的速度。我们知道要使用的软件都要通过主存储器(内存)才能运行,而主存储器的运行速度和CPU之间有一个数量级的差距,这就限制了CPU速度潜力的发挥,为了弥补这个差距,人们在主存储器和CPU之间设置一种高速缓冲存储器Cache。高速缓冲存储器Cache的运行速度高于主存储器数倍,与CPU速度差不多,容量较小。高速缓冲存储器Cache中的数据是主存储器的副本,在程序运行中,当需要取指令或数据时,CPU先检查高速缓冲存储器Cache中是否有内容,若有就从Cache中取出,否则从主存储器取出,这样就充分发挥了CPU的潜力。在486的机种中经常配备高速缓冲存储器Cache,与主存储器相比,它的工作性质是不同的。简单地说,Cache是针对CPU作输入输出动作的,而主存储器是针对总线作输入输出动作的,因此Cache比主存储器的速度快。现在486机型一般配置有256K的Cache,Cache并不是越大越好,一般有256K就足够了。另外,如果机器本身没有配备硬件Cache,可以使用某些工具软件(如PC TOOLS,NORTON等)控制的Cache功能,也能达到同样的效果。二、磁盘高速缓冲存储器SMARTDRV SMARTDRV.EXE是DOS 6.2中的外部设备驱动程序。用此程序可启动或设置磁盘高速缓冲存储器。与

系统性能调优方案

第1章系统性能调优方案 1.1系统的性能扩展模型介绍 在进行性能指标设计工作前,必须从理论上对性能指标的可实现性进行分析。理论上,系统的扩展模型可以分成两类,系统可扩展模型和不可扩展模型,如下图所示: 两种性能扩展模型 以上左图代表了系统随着并发用户量的增加系统响应时间呈现线性增长的 趋势,是一种可扩展的情况;但对于系统右边的方式则是不可扩展的,它将随着用户数量的增大而响应时间大大急剧增加,这种模型是完全不可控制的。 通过系统压力实验,我们发现,即使是遵循可扩展模型设计的系统的响应性能和并发用户量并不能成永远的线性关系,在系统压力超过一定的值之后,如100并发,系统响应时间增加非常快,我们把这个点称为拐点。在拐点以下,系统性能呈现良好的线性特性,在拐点以上,则呈现出非线性的特征,同时CPU 和内存出现相当大的增长,甚至100%占用。这种现象的出现,说明系统的性能 不仅仅取决于软件系统,而也同时取决于承载系统的硬件基础环境,如计算能力和内存大小。 为此,系统性能设计的目的就是为系统设置合理的拐点并发值,而不可能无限制的追求无限大的并发下系统响应仍旧呈现线形特征。

1.2对响应时间的技术保障手段 金税三期工程第二阶段河南地税建设项目财务管理子系统对系统的性能要求是比较高的,为了满足这个要求,在系统实现上必须要采用一系列的技术措施才能达到,具体来说将采用下面方式进行: 1、预处理技术的应用 预处理技术是一种在预定计划上由系统激发主动执行的计算模式,它对于一些处理内容固定,处理方式固定的功能非常有效,通过提前处理,实现数据生成时间和数据访问时间的隔离,在数据访问的时候不再需要为拿到结果而执行任何的计算,只需要简单的查询结果即可,这样可以大大增强系统的访问性能,有效的利用系统闲置时间。 2、变动态内容查找为静态数据访问 一些情况下,经过各种调优手段仍不能满足要求,就需要将一些动态的内容进行静态化处理,如可以将复杂的动态报表转化成HTML网页并发布在WEB服务器上,这种方式可以大大减轻应用服务器的访问压力,进一步减少用户等待的时间。例如,对一段历史时期的数据的汇总报表结果的查询,复杂报表结果等查询。 3、异步功能调用模式 对一些耗时较长的处理内容,如果必须由人工进行启动,那么,可以采用这种方式,用户调用程序的时候,实际上只是发送了一个消息给后台服务器,并在服务器端注册信息处理完后需要回馈的客户端,然后系统提示用户系统正在或很快处理这个任务,这样,立刻就能够解放用户,用户可以利用在后台处理的时间去处理其他的任务,在系统处理完后,采用推技术(push),将处理结果提示给用户,从而完成功能的调用全过程。 4、浏览器显示时采用分页、分时显示技术 用户从数据库查询得到的数据如果行数比较多,比如大于100行。在IE端显示就需要花费很长时间,有时让查询人员无法忍受。分页技术,就是利用先显示结果的一部分,一般结果的前50条记录,后面的记录通过翻页的功能去显示其余部分。比如在查询正常计划详细列表页面时,通过查询得到1000条记录,

网络性能优化

网络性能优化总结 网络性能优化的目的是减少网络系统的瓶颈、设法提高网络系统的运行效率。对于不同的网络硬件环境和软件环境,可以存在不同的优化方法和内容。例如,在一个配置比较落 后而又需要提供各种新服务的网络中,管理员往往需要对内存、CPU磁盘、网络接口和服 务器等分别进行优化处理,以便适应新的网络运行要求。但是,在一个网络服务比较少而硬 件配置比较高的网络中,管理员不需要考虑整个网络的性能问题,只要利用一些性能和网络 监视工具对系统进行监视,然后对发现的问题进行专项处理即可。下面对网络性能优化过程 中的重要内容分别进行介绍。 721内存优化 内存是操作系统中的重要资源,不仅操作系统的运行需要它,而且各种应用程序和服务都需要调用它才能使用。从应用的角度来看,系统内存是引起各种系统问题的重要原因,是需要用户和管理员着重考虑的优化对象。 1.合理使用内存 在内存一定的情况下,合理地使用内存可以提高网络的性能。这要求管理员必须对系 统中的内存使用情况非常了解,对于那些不再需要的功能、应用程序或服务应及时关闭,以便释放内存给其他应用程序和服务。另外,管理员还可以通过系统设置来决定内存的主要优 化对象。一般,服务器的主要优化对象应该是后台服务,而工作站和单个计算机的主要优化 对象应该是前台应用程序。 要选择内存优化的主要对象,可执行下面的操作步骤: (1)打开“控制面板”窗口,右击“系统”图标,从弹出的快捷菜单中选择“打开” 命令,打开“系统特性”对话框。 (2)单击“高级”标签,切换到“高级”选项卡,然后单击“性能”选项组中的“性 能选项”按钮,打开“性能选项”对话框,如图7-1所示。 图7-1 “性能选项”对话框

Oracle性能优化总结

个人理解,数据库性能最关键的因素在于IO,因为操作存是快速的,但是读写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的IO,就个人理解应该分为物理的和逻辑的优化,物理的是指oracle产品本身的一些优化,逻辑优化是指应用程序级别的优化 物理优化: 一、优化存

3.管理员可以通过下述语句来查看数据缓冲区的使用情况 select name,value from v$sysstat where name in('db block gets','consistent gets','physica l reads'); 数据缓冲区使用命中率(physical reads除以db block gets加consistent gets之和)一定要小于10%,否则需要增加数据缓冲区大小 4.管理员可以通过执行下述语句,查看日志缓冲区的使用情况 select name,value from v$sysstat where name in ('redo entries','redo log space requests') 根据查询出的结果可以计算出日志缓冲区的申请失败率:requests除以entries 申请失败率应该解决与0,否则说明日志缓冲区开设太小,需要增加Oracle数据库的日志缓冲区 二、物理I/0的优化 1.在磁盘上建立数据文件前首先运行磁盘碎片整理程序 为了安全地整理磁盘碎片,需关闭打开数据文件的实例,并且停止服务。如果有足够的连续磁盘空间建立数据文件,那么就容易避免数据文件产生碎片。 2.不要使用磁盘压缩(Oracle文件不支持磁盘压缩) 3.不要使用磁盘加密 加密像磁盘压缩一样加了一个处理层,降低磁盘读写速度。如果担心自己的数据可能泄露,可以使用dbms_obfuscation包和label security选择性地加密数据的敏感部分 4.使用RAID raid使用应注意: 选择硬件raid超过软件raid;日志文件不要放在raid5卷上,因为raid5读性能高而写性能差;把日志文件和归档日志放在与控制文件和数据文件分离的磁盘控制系统上 5.分离页面交换文件到多个磁盘物理卷 跨越至少两个磁盘建立两个页面文件。可以建立四个页面文件并在性能上受益,确保所有页面文件的大小之和至少是物理存的两倍。

22提供性能优化方案---Google-Code

Linux系统性能测试与分析 1、前言 通过对系统中和性能相关的各个环节的介绍,使大家知道出现性能问题时可以从那些方面入手去查,而分析典型应用对系统资源使用的特点,让大家对应用和系统资源的依赖有了更直观的认识。大多数的硬件性能问题主要和CPU、磁盘、内存相关,还没有遇到因为开发语言的运行效率对整个应用的性能造成影响,而应用程序设计的缺陷和数据库查询的滥用反倒是最最常见的性能问题。需要注意的是,大多数情况下,虽然性能瓶颈的起因是程序性能差或者是内存不足或者是磁盘瓶颈等各种原因,但最终表现出的结果就是CPU耗尽,系统负载极高,响应迟缓,甚至暂时失去响应,因此我们观察服务器状况时,最先看的就是系统负载和CPU空闲度。当你阅读完了这遍文档以后就会有一个对系统分析的思路。 2、性能分析的目的 2.1找出系统性能瓶颈 1.硬件瓶颈 2.软件瓶颈 2.2提供性能优化方案 1.升级硬件 2.改进系统结构 达到合理的硬件和软件配置,使系统资源使用达到平衡。但遗憾的是解决一个性能瓶颈,往往又会出现另外的瓶颈或者其他问题,所以性能优化更加切实的目标是做到在一定范围内使系统的各项资源使用趋向合理和保持一定的平衡。系统运行良好的时候恰恰也是各项资源达到了一个平衡体,任何一项资源的过渡使用都会造成平衡体系破坏,从而造成系统负载极高或者响应迟缓。比如CPU过渡使用会造成大量进程等待 CPU资源,系统响应变慢,等待会造成进程数增加,进程增加又会造成内存使用增加,内存耗尽又会造成虚拟内存使用,使用虚拟内存又会造成磁盘IO增加和CPU开销增加(用于进程切换、缺页处理的CPU开销) 3、性能相关的各个环节 3.1 硬件资源 3.1.1、CPU ⒈ 是否使用SMP。 ⒉ 单颗CPU的性能对依赖CPU的某些应用的影响很严重,比如数据库的查询处理。 3.1.2、内存

性能分析与调优的原理及原则

性能分析与调优的原理 最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库。从操作系统(CPU调度,内存管理,进程调度,磁盘I/O)、网络、协议(HTTP,TCP/IP),还是从应用程序代码,数据库调优,中间件配置等方面入手。 单一个中间件又分web中间件(apache、IIS),应用中间件(tomcat、weblogic、webSphere)等,虽然都是中间件,每一样拎出来往深了学都不是一朝一夕之功。但调优对于每一项的要求又不仅仅是“知道”或“会使用”这么简单。起码要达到“如何更好的使用”。 常看到性能测试书中说,性能测试不单单是性能测试工程师一个人的事儿。需要DBA 、开发人员、运维人员的配合完成。但是在不少情况下性能测试是由性能测试人员独立完成的,退一步就算由其它人员的协助,了解系统架构的各个模块对于自身的提高也有很大帮助,同进也更能得到别人的尊重。 再说性能调优之前,我们有必要再提一下进行测试的目的,或者我们进行性能测试的初衷是什么? 能力验证:验证某系统在一定条件具有什么样的能力。 能力规划:如何使系统达到我们要求的性能能力。 应用程序诊断:比如内存泄漏,通过功能测试很难发现,但通过性能测试却很容易发现。 性能调优:满足用户需求,进一步进行系统分析找出瓶颈,优化瓶颈,提高系统整体性能。 一、一般系统的瓶颈 性能测试调优需要先发现瓶颈,那么系统一般会存在哪些瓶颈: 1、硬件上的性能瓶颈:

一般指的是CPU、内存、磁盘I/O 方面的问题,分为服务器硬件瓶颈、网络瓶颈(对局域网可以不考虑)、服务器操作系统瓶颈(参数配置)、中间件瓶颈(参数配置、数据库、web服务器等)、应用瓶颈(SQL 语句、数据库设计、业务逻辑、算法等)。 2、应用软件上的性能瓶颈: 一般指的是应用服务器、web 服务器等应用软件,还包括数据库系统。 例如:中间件weblogic 平台上配置的JDBC连接池的参数设置不合理,造成的瓶颈。 3、应用程序上的性能瓶颈: 一般指的是开发人员新开发出来的应用程序。 例如,程序架构规划不合理,程序本身设计有问题(串行处理、请求的处理线程不够),造成系统在大量用户方位时性能低下而造成的瓶颈。 4、操作系统上的性能瓶颈: 一般指的是windows、UNIX、Linux等操作系统。 例如,在进行性能测试,出现物理内存不足时,虚拟内存设置也不合理,虚拟内存的交换效率就会大大降低,从而导致行为的响应时间大大增加,这时认为操作系统上出现性能瓶颈。 5、网络设备上的性能瓶颈: 一般指的是防火墙、动态负载均衡器、交换机等设备。 例如,在动态负载均衡器上设置了动态分发负载的机制,当发现某个应用服务器上的硬件资源已经到达极限时,动态负载均衡器将后续的交易请求发送到其他负载较轻的应用服务器上。在测试时发现,动态负载均衡器没有起到相应的作用,这时可以认为网络瓶颈。 性能测试出现的原因及其定位十分复杂,这里只是简单介绍常见的几种瓶颈类型和特征,而性能测试所需要做的就是根据各种情况因素综合考虑,然后协助开发人员/DBA/运维人员一起定位性能瓶颈。 二、一般性能调优步骤 一般性能问题调优的步骤: 1、步骤一:确定问题 应用程序代码:在通常情况下,很多程序的性能问题都是写出来的,因此对于发现瓶颈的模块,应该首先检查一下代码。

相关文档
最新文档