好有缘导航网

优化服务器硬件性能:最佳实践和故障排除指南 (优化服务器硬盘接口)


文章编号:34439 / 分类:行业资讯 / 更新时间:2024-12-11 14:54:28 / 浏览:

硬盘接口是计算机系统中服务器和硬盘驱动器之间通信的通道。优化硬盘接口可以显著提高服务器的整体性能。本文将探讨优化硬盘接口以提高服务器硬件性能的最佳实践和故障排除指南。

最佳实践

1. 使用高速接口

高速接口,如 SAS、SATA III 和 NVMe,比旧接口提供更快的传输速度。升级到高速接口可以显着提高硬盘读写性能。

2. 配置 RAID 阵列

RAID(冗余阵列独立磁盘)阵列可以提高数据安全性和性能。通过将多个硬盘驱动器组合成一个逻辑驱动器,RAID 可以提供数据冗余和增强性能。

3. 使用 SSD 驱动器

固态驱动器(SSD)比传统硬盘驱动器快得多。使用 SSD 可以显着缩短服务器启动时间和应用程序加载时间。

4. 配置 I/O 调度程序

I/O 调度程序管理服务器与硬盘之间的 I/O 请求。配置最佳的 I/O 调度程序可以优化 I/O 性能并减少延迟。

5. 监视硬盘性能

定期监视硬盘性能可以帮助识别潜在问题并采取预防措施。使用服务器管理软件或工具来监视 I/O 速率、响应时间和错误率。

故障排除指南

1. 缓慢的 I/O 性能

  • 检查硬盘接口类型并确保使用高速接口。
  • 检查 RAID 阵列配置并确保没有瓶颈。
  • 使用性能监视工具检查 I/O 速率和响应时间。
优化服务器硬件性能最佳实践和故障排除指南

「精心整理」Ceph搭建硬件建议详解

Ceph是专为在商品硬件上运行而设计的,这使得构建和维护超大规模的数据集群在经济上是可行的。 当规划出你的集群硬件时,你需要平衡一些考虑因素,包括故障域和潜在的性能问题。 硬件规划应该包括将Ceph守护进程和其他使用Ceph的进程分布在许多主机上。 一般来说,我们 建议在为该类型的守护进程配置的主机上运行特定的Ceph守护进程。 我们建议使用其他主机来处理使用您的数据集群的进程(例如OpenStack、CloudStack)

Ceph元数据服务器会动态地重新分配负载,这对CPU来说是很有必要的。 所以你的元数据处理器应该有相当大的处理能力(四核心或更高的CPU)。 Ceph OSDs 运行RADOS服务,用CRUSH计算数据放置、复制数据,并维护自己的集群地图副本。 因此,OSD应该有合理的处理能力(例如双核处理器)。 监视器只是维护集群映射的主副本,所以监视器不需要CPU密集型的处理能力。

除了Ceph守护进程之外,你还必须考虑主机是否会运行CPU密集型进程,例如,如果您的主机将运行计算虚拟机(例如,OpenStack Nova),您需要确保这些其他进程为Ceph守护进程留下足够的处理能力。 我们建议在单独的主机上运行额外的CPU密集型进程。

一般来说,RAM越多越好

监视器和管理器守护进程的内存使用量一般会随着集群的大小而变化。

对于小型集群,一般来说,1-2GB就足够了。

对于大型集群,你应该提供更多(5-10GB)。

你可能还需要考虑调整设置,如mon_osd_cache_size或 rocksdb_cache_size

Bluestore使用自己的内存来缓存数据,而不是依赖操作系统的页面缓存。在BlueStore中,你可以通过osd_memory_target选项调整OSD_memory_target的内存量

•通常不建议将osd_memory_target设置为2GB以下,可能会将内存保持在2GB以下,同时也可能导致性能极慢。 •将内存目标设置在2Gb和4Gb之间通常有效,但可能会导致性能下降,因为元数据可能在IO期间从磁盘读取,除非活动数据集相对较小。 •4GB是目前默认的osd_memory_target大小,这样设置的目的是为了平衡内存需求和OSD的性能,以满足典型的使用情况•设置osd_memory_target高于4GB时,当有许多(小的)或大的(256GB/OSD)数据集被处理时,哪基可能会提高性能。

重要:

OSD的内存自动调整是“尽力而为”。 虽然OSD可能会解除内存映射,让内核回收内存,但不能保证内核会在任何特定的时间框架内实际回收释放的内存。 这在旧版本的Ceph中尤其如此,因为透明的巨页会阻止内核从碎片化的巨页中回收内存。 现代版本的Ceph在应用级禁用透明巨页以避免这种情况,但这仍然不能保证内核会立即回收未映射的内存。 OSD有时仍然可能会超过它的内存目标。 我们建议在系统中保留20%左右的额外内存,以防止OSD在临时高峰期或由于内核延迟回收空闲页而导致的OSD出现OOM。 这个值可能会比需要的多或少取决于系统的具体配置。

在使用传统的FileStore后端时,页面缓存是用来缓存数据的,所以一般不需要调优,OSD的内存消耗一般与系统中每个守护进程埋缓橡的PG数量有关

仔细规划你的数据存储配置。 在规划数据存储时,需要考虑重大的成本和性能权衡。 同时进行操作系统操作,以及多个守护进程对单个驱动器同时请求读取和写入操作,会大大降低性能。

重要

由于Ceph在发送ACK之前必须先将所有数据写入日志(至少对XFS来说),所以日志和OSD的性能平衡真的很重要!在这里,Ceph的日志和OSD的性能是非常重要的。

OSD应该有足够的硬盘空间来存放对象数据。 我们建议硬盘驱动器的最小容量为1T。 考虑到较大磁盘的每GB的成本优势。 我们建议将硬盘驱动器的价格除以千兆字节,得出每千兆字节的成本,因为较大的驱动器可能会对每千兆字节的成本有很大影响。 例如,价格为75美元的1T硬盘,每千兆字弯旁节的成本为0.07美元。 相比之下,价格为150美元的3T硬盘的成本为每千兆字节0.05美元。 在上述例子中,使用1T硬盘通常会使每千兆字节的成本增加40%——使集群的成本效益大大降低。

Tips: 在一个磁盘上运行多个OSD,无论分区如何,都不是一个好主意

Tips: 在单一磁盘上运行OSD和显示器或者元数据服务器,无论分区如何,都不是一个好主意

存储驱动器在寻求时间、访问时间、读取和写入时间以及总吞吐量方面受到限制。 这些物理限制会影响整体系统性能,特别是在恢复期间。 我们建议为操作系统和软件使用一个专门驱动器,并且您在主机上运行的每个Ceph OSD daemon使用一个驱动器。 大多数“慢OSD”问题的出现是由于在同一个驱动器上运行一个操作系统,多个OSD,或多个日志。 由于在一个小型集群上排除性能问题的成本超过了额外的磁盘驱动器的成本,因此您可以通过避免过度消耗OSD存储驱动器的诱惑来优化您的集群设计规划。

您可以在每个硬盘驱动器上运行多个Ceph OSD Daemons,但这可能会导致资源征用,降低整体吞吐量。 你可以在同一硬盘上存储日志和对象数据,但这可能会增加写日志和ACK到客户端所需要的时间。 Ceph必须先写入到日志,然后再进行ACK写入。

ack写入:完成此类写入之后,将向客户端发送一个成功写入的ACK,所以称之为ACK写入

Ceph最佳实践规定,你应该在不同的驱动器上运行操作系统、OSD数据和OSD日志

提高性能的一个机会是使用固态硬盘来减少随机访问时间和读取延迟,同时加快吞吐量。 与机械硬盘相比,固态硬盘每千兆字节的成本往往超过10倍以上,但固态硬盘的访问时间往往比机械硬盘至少快100倍。

固态硬盘没有活动的机械部件,所以他们不一定会受到与机械硬盘相同的限制。 但固态硬盘确实有很大的局限性。 在评估固态硬盘时,重要的是考虑顺序读取和写入的性能。 当为多个OSD存储多个日志时,具有400MB/S顺序写入吞吐量的SSD可能比具有120MB/s顺序写入吞吐量的SSD性能要好的多。

重要

我们建议探索使用固态硬盘来提高性能。然而,在对SSD进行重大投资之前,我们强烈建议在审查SSD的性能指标和测试配置中测试SSD的性能

由于固态硬盘没有活动的机械部件,所以在Ceph中不需要使用大量存储空间的区域(如日志)使用固态硬盘是很有意义的。 相对便宜的SSD可能会吸引你的经济意识。 请谨慎使用。 在选择使用Ceph的SSD时,仅有可接受的IOPS是不够的。 日志和SSD有几个重要的性能注意事项:

•写入密集型语义:日志涉及到写密集型语义,因此您应该确保您选择部署的SSD在写入数据时的性能相当于或优于机械硬盘。 廉价的固态硬盘在加速访问时间的同时,可能会引入写入延时,因为有时高性能硬盘的写入速度会比市场上一些更经济的固态硬盘快,因此,您应该确保您选择的固态硬盘在写入数据时的性能与机械硬盘相当或更好。 •顺序写入:当您在SSD上存储多个日志时,您必须考虑到SSD的顺序写入限制,因为它们可能会同时处理对多个OSD日志的写入请求。 •分区对齐:SSD性能的一个常见问题是,人们喜欢将硬盘分区作为最佳做法,但往往忽略了对SSD的正确分区对齐,这样会导致SSD的数据传输速度更慢。 确保SSD分区正确对齐

虽然固态硬盘对于对象存储的成本较高,但通过将OSD的日志存储在固态硬盘上,并将OSD的对象存储存储在独立的机械硬盘上,可能会看到性能的显著提升。 osd journal配置设置默认为/var/lib/ceph/osd/$cluster-id/journal。 您可以将此路径挂载到SSD或者SSD分区,使其不只是与对象数据存储在同一硬盘上。

Ceph加速CephFS文件系统性能的一种方法是将CephFS元数据的存储与CephFS文件内容的存储隔离开来。 Ceph为CephFS元数据提供了一个默认的元数据池。 你永远不必为CephFS元数据创建一个池,但你可以为你的CephFS元数据池创建一个只指向主机的SSD存储介质的CRUSH映射层次结构。 详情请参见将池映射到不同类型的OSDs。

•意思是可以将一个池的所有数据都存储到SSD类型的OSD

磁盘控制器对写入吞吐量也有很大影响。 在选择磁盘控制器时要慎重考虑,确保不会造成性能瓶颈。

••你可以在每台主机上运行多个OSD,但你应该确保你的OSD硬盘的总吞吐量之和不超过服务于客户端读取或写入所需的网络带宽。 你还应该考虑集群在每台主机上存储的数据占整体数据的百分比。 如果某个特定主机上的百分比很大,而该主机出现故障,可能会导致超过 full ratio 等问题,从而导致Ceph停止工作,作为防止数据丢失的安全规范措施。

当你在每个主机上运行多个OSD时,你还需要确保内核是最新的。 请参阅OS建议中关于glibc和syncfs(2)的说明,以确保你的硬件在每个主机上运行多个OSD时,能按照预期的方式执行。

考虑从机架上的10Gbps+网络开始。 在1Gbps网络上复制1TB的数据需要3个小时,而10TB需要30个小时!相比之下,使用10Gbps网络,复制时间分别需要20分钟和1小时。 在petabyte规模的集群中,OSD磁盘的故障应该是一种预期,而不是例外。 在考虑到价格/性能权衡的情况下,系统管理员会很欣赏PG能尽快从降级状态恢复到活动+清洁状态。 此外,一些部署工具采用VLANS使硬件和网络布线更易于管理。 使用802.1q协议的运营成本节省所抵消。 当使用VLAN来处理集群和计算堆栈(例如OpenStack、CloudStack等)之间的VM流量时,也值得考虑10G以太网。 每个网络的架上路由器还需要能够与吞吐量更快的骨干路由器进行通信,例如40Gbps到100Gbps。

您的服务器硬件应该有一个底层管理控制器(BMC)。 管理和部署工具也可能会大量使用BMC,因此要考虑带外网络的管理成本/收益权衡。 Hypervisor SSH访问、VM镜像上传、操作系统镜像安装、管理套接字等都会给网络带来巨大的负载。 运行三个网络可能看起来似乎矫枉过正,但每个流量路径都代表了潜在的容量、吞吐量和/或性能瓶颈,在部署大规模数据集群之前,您应该仔细考虑。

BMC:Baseboard Management Controller,基板管理控制器

带外网络:OOB,全程Out Of Band,一套与任何业务数据网络没有关联的独立网络,在任何时候——即便是业务网络终端的情况下,网络控制中心都可以通过带外网络连接到各个服务器或者网络设备的管理接口或者console.

故障域是指任何阻止一个或多个OSD的故障。 这可能是主机上的守护进程停止;硬盘故障、操作系统崩溃、网卡故障、电源故障、网络中断、断电等等。 在规划硬件需求的时候,你必须平衡一下,把太多的责任放在太少的故障域中来降低成本,以及隔离每个潜在故障域所带来的额外成本

Ceph可以在廉价的商品硬件上运行。小型生产集群和开发集群可以用适中的硬件成功运行

进程类型硬件类型建议的最低标准

ceph-osd Processor最低一核200-500MB/s 单核心1000-3000IOPS 单核心结果是复制之前的结果结果可能会因为不同的CPU型号和Ceph功能而不同(纠删码池、压缩等)ARM处理器可能会需要更多的核心实际性能取决于许多因素,包括磁盘、网络、客户端吞吐量和延迟。我们强烈建议进行基准测试RAM每个守护进程4GB以上(越多越好)2-4GB 可以正常工作(可能会很慢)低于2GB是不推荐的Volume Storage每个守护进程对应一块硬盘DB/WAL每个守护进程对应一个SSD分区(可选)Network最少一块千兆以上的网卡(万兆网卡是被推荐的) ceph-mon Processor最低一核RAM每个进程2GB以上的内存Disk Space每进程10GB以上的硬盘空间Network最少一块千兆以上的网卡 ceph-mds Processor最低一核RAM每个进程2GB以上的内存Disk Space每个进程1MB以上的硬盘空间Network最少一块千兆以上的网卡

DotNetNuke网站性能的10个技巧

以下的这些配置是目前为止我所发现的最佳基准配置 依据不同的主机运行环境 更新频率 访问量 以及用户数量 网站的优化配置会有些不同 经过优化的DNN也是可以运行得很快的 以下我将使用DNN 中文版示范 这些技巧同样适用于DNN x

主机管理 > 主机设置中的基本优化

首先我们来优化主机设置 我仅在这里指出关键的设置

外观

显示版权信息 禁用此项

◆高级设置 > 身份验证设置 (只适用于DNN x DNN 设置方法见下) 禁庆前用不需要的身份验证方式 通常我会禁用LiveID和OpenId以增加用户登陆的速度

◆高级设置 > 性能设置

◆网页状态保存方式 页面 这里是指viewstate的存储方式

◆模块缓存方式 重量级缓存 这里使用的是页面输出缓存

◆客户端缓存 Public 这样浏览器就会缓存js css 图片这些资源文件

◆压缩设置 GZip方式压缩 注意这里只是Gzip压缩只是压缩aspx动态页升猛面 javascript css等资源文件请在IIS中设置压缩 压缩后页面大小一般会减少 %以上 速度提高也节省带宽

◆高级设置 > 其它设置

◆任务调度模式: 计时器模式 HTTP请求模式对访问率低的网站会造成初次访问加载过重的现象 启用事件记录缓存? 选中此项 是否自动同步文件? 禁用此项

卸载不需要的模块和Provider

卸载不需要的模块可以提高加载网站的速度 卸载模块后模块对应的程序集(dll)也会从bin文件夹中移除 这样会减少初次读取网站时加载程序集到内存的数量 以提高网站读取速度 DNN安装向导中默认模式只会安装基本的模块和Provider 但如果安装时选择了全部模块及Provider请按以下方式卸载 当需要时再安装

DNN x 主机管理 > 模块定义 中删除不需要的模块

DNN x 主机管理 > 功能扩展 中删除不需要的扩展 例如不需要论坛时就不要安装 网站不提供OpenId验证方式就卸载掉

禁用不需要的身份验证方式

此设置只适用于DNN 在DNN 中如果安装了多种身份验证方式 例如OpenID LiveID Active Directory在站点管理中可以针对不同的站点关闭开启需要的验证方式 这点比DNN x要灵活 在这里我们要禁用不需要的身份验证方式已提升登陆页面速度 在 站点管理 > 功能扩展中 选择扩展类型 Authentication System(身份验证系统) 然后编辑不需要的身份验证系统并禁用 通常我会只开启Default Authentication(默认的DNN验证方式) 禁用

DNN_OpenIDAuthentication

DNN_LiveIDAuthentication

DotNetNuke Active Directory Authentication Project

调度管理的设置

在 主机设置 > 调度管理中 根据需要延长或关闭不需要的调度任务 以防止频繁执行调度任务增加服务器压力

如果网站不提供站内搜索 则禁用DotNetNuke Services Search SearchEngineScheduler

如果网站提供站内搜索 则把DotNetNuke Services Search SearchEngineScheduler任务频率设置为 天重试频率设为 小时 这将会极大的减缓服务器压力

同样把DotNetNuke Services Scheduling PurgeScheduleHistory任务频率设置为 天

以上 就是最基本的通过网站配置实现的优化 总的来说以上的改变会带来显著的性能提升 但大多时间仍然不能足够的保正网站平滑的运行 因此依据不同情况我会进行以下的优化

定期清除事件记录

很多用过DotNetNuke的朋友会发现数据库中[EventLog] 表(记录站点 事件记录 的表)可能会成为导致性能下降的罪魁祸首因为DNN网站中的很多操作都会被记录到事件记录(EventLog)中 开启事件记录缓存会减缓尺寸过大的[EventLog]表誉笑清对网站带来的副作用 但是最佳的优化方法莫过于定期清除 事件记录 方法有很多种

如果只有一个站点 用主机管理员(host)帐号登陆在站 点管理 > 事件记录 中选择清除所有记录 如果有很多站点一个一个清除很麻烦 直接到 主机管理 > SQL查询 里运行 TRUNCATE TABLE eventlog 则可一次清除[eventlog]的所有记录 如果对数据库有管理权限则可设置数据库调度任务定期自动执行 TRUNCATE TABLE eventlog

另外也可以使用Scheduled SQL Jobs这个免费模块来定期清空事件记录

请记住 我们必须保持 事件记录 (eventlog表)的记录数在一个很小的范围内 这样才能保证网站的运行效率 很多国外收费很贵的DNN专用主机空间所作的主要优化就是定期清除事件记录 当然在 站点管理 > 事件记录 > 编辑记录设置 中关闭不需要的记录 例如APPLICATION_START APPLICATION_END也是个不错的方法

皮肤优化

皮肤优化也是很重要的 购买或制作皮肤时一定要选用支持XHTML的使用DIV+CSS制作的皮肤 这会增加网页读取的流畅度 css也可以被浏览器缓存也可以增加页面读取速度 另外选择一个支持CSS的菜单控件 例如House Menu皮肤控件来替换默认的皮肤控件可以减少页面尺寸 %甚至更多 优化后的皮肤可令页面读取速度减少 %以上

另外关于客户端优化Yahoo的网站优化最佳实践是个很好的指南 我们也可以下载firefox中的YSlow插件来查看优化的效果

防止网站重新加载编译

很多人对DNN速度慢的印象大多来自于初次访问速度过慢 这其实是因为Asp Net网站初次加载到程序池需要进行动态编译导致感觉速度很慢 其实加载之后速度就会很快了 另外对于访问量不多的网站

网站在静止一段时间后会被从程序池中踢出 当有用户访问时网站会重新加载编译 所以对于访问量少的网站用户总是觉得网站很慢 解决这个问题的关键是保持网站在程序池中活跃 以防网站重新加载 这方面的工具不少 原理一般就是定时ping网站保持网站活跃

我比较推荐的是一个免费工具Smarter Ping 之前有个客户的网站访问量很小导致每次访问网站都会重新加载 一般要等 秒 在使用了Smarter Ping之后每次都是一下就打开了不超过 秒 Smart Ping是一个Windows Service它会定时ping你预设的网站 这里建议时间间隔设为 分钟一次 另外DNN也有提供一个专门响应这类工具的网页在网站根目录下 KeepAlive aspx 添加要ping的网址时则可设为x

DNN优化模块

在这里不得不提Snapsis PageBlaster这个优化模块 它可以提供全方位的优化 例如页面压缩 缓存 合并静态文件减少请求 大大提升页面读取速度 如果前面优化效果不理想可以试试这个模块

服务器优化建议

在不同运行环境下的优化配置

云平台 类似于Mosso这种云服务平台也是可以支持DNN的 但是在这种环境下模块缓存到内存是不工作的 所以在主机设置里我们要把 模块缓存方式 设为硬盘 这样会提升 %的性能 其它的设置基于以上优化不用变动

共享主机 共享主机中 模块缓存方式 设置为内存没什么问题 因为内存比磁盘要快很多 但是对于很繁忙的Web服务器 例如存放上百个网站的Web服务器使用共享的应用程序池 每个网站分配到的内存可能都会很少 这种情况下缓存到内存的命中率会很低 大部分时间会从服务器重新请求 这时设置 模块缓存方式设 为硬盘的效果会好些

虚拟主机 情况和共享主机类似 模块缓存方式 默认设置为内存 根据具体情况如果网站很多觉得速度慢改为硬盘试试看

对于在本地测试使用debug模式在Visual Studio中运行的朋友 不要期待在这种环境下速度会很快 这种模式下运行DNN这种大型网站会很吃力 在IIS中设置网站速度会提高不少

修复反复发生的错误

反复发生的错误异常是所有网站的性能杀手 每当有不能处理的异常抛出都会的进程造成一些影响 并且DNN系统会捕捉并记录异常到数据库的[EventLog]表 对于高访问量的网站这种代价是很难承受的 经常查看 站点管理 > 事件记录 确定没有反复发生的错误是保证网站正常工作的前提 如果发现此类异常要及早处理 异常可能是由第三方模块造成 也可能是系统本身的bug

对于不熟悉 Net除错和DotNetNuke系统的朋友 可能会比较麻烦 这时最好利用社区的帮助或者咨询专业公司

总结

lishixinzhi/Article/program/net//

3dmax 中如何使用 corona 渲染器加速渲染?

此外,场景优化、孝如灯光设置、纹理质量、多边形数量和动画效果都会影响渲染速度。以下是加速渲染的具体建议:

如果本地硬件不足以满足需求,可以考虑使用如渲云这样的云渲纤慎衡染服务,它提供了高配置的云端资源,如高内存和高性能服务器,可以批量渲染,无需额外硬件投入,显著提高渲染速度,提升工作效率。

渲云作为云渲染平台,提供了全方位服务,包括海量计算资源、数据安全、专业技术支持以及各类3D软件插件支持。 赞奇云工作站也提供了云端一体解决方案,为渲染加速提供了更多选择。


相关标签: 最佳实践和故障排除指南优化服务器硬盘接口优化服务器硬件性能

本文地址:http://www.hyyidc.com/article/34439.html

上一篇:服务器硬件虚拟化基础知识和优势服务器硬件...
下一篇:服务器硬件的最新趋势和创新服务器硬件的主...

温馨提示

做上本站友情链接,在您站上点击一次,即可自动收录并自动排在本站第一位!
<a href="http://www.hyyidc.com/" target="_blank">好有缘导航网</a>