Articles of 性能

使用24x SSDarrays设置低成本图像存储服务器以获得高IOPS?

我想build立让我们把它命名为一个低成本的Ra *圣将主办我们的社会网站的图像(数百万),我们有5 KB大小的每张图片的3 KB,7 KB,15 KB,25 KB和80 KB的每张照片。 我的想法是在Raid 6中构build一个24x用户240 GB SSD的服务器,这将为我提供5 TB的磁盘空间来存储照片。 有HA,我可以添加第二个,并使用drdb。 我期望获得超过150'000 IOPS(4K随机读取)。 由于我们大多只有读取权限,很less删除照片,我认为与消费者的MLC SSD。 我阅读了许多耐力评论,只要我们不重写单元格,就没有看到问题。 你对我的想法有什么想法? – 我不确定Raid 6或Raid 10(更多的IOPS,成本SSD)。 ext4文件系统是否正常 – 您是否使用1或2 Raid控制器,以及Extender Backplane 如果有人已经意识到类似的事情,我会很乐意得到真实世界的数字。 UPDATE 我已经购买了12台OCZ Talos 480GB SAS SSD硬盘,将它们放置在一个12-bay DAS中,并连接到PERC H800(1GB NV Cache,LSI制造的快速path)控制器,我计划安装Raid 50与ext4。 如果有人想知道一些基准,让我知道你想看到什么。

如何优化MSSQL数据库的性能?

我是一个具有〜280表的数据库的dba,总数据大小为〜1,5GB。 我想调整数据库,使其performance更好。 你如何保持你的SQL数据库的性能? 多less索引,统计和碎片整理你在做什么? 什么是最大的性能杀手/改进,以及如何解决问题以找出哪里优化? 编辑:这是来自第三方CRM系统的数据库,所以我无法控制代码。 他们已经添加了很多索引(在合理的地方),但我想知道如何保持服务器的速度。 我每晚都跑步 EXEC sp_MSforeachtable "dbcc dbreindex('?', '', 90)" 重build索引和(希望)更新统计数据,使用维护计划。 同样的计划也执行“收缩数据库任务”。 还有什么其他的每周/每周维护任务,或一次性优化可以完成? 编辑2: 提示聚集: 不要运行“收缩数据库任务” closures“自动收缩”属性 运行“EXEC sp_MSforeachtable”dbcc dbreindex('?','',90)“ 然后运行“EXEC sp_updatestats”

我应该使用哪个CentOS版本?

我有一些使用的机架式服务器(戴尔R610,惠普DL180 G6,惠普DL360 G5),我打算用于点播环境中的点播videostream。 我想让他们在同一个操作系统上进行简单pipe理,让一台服务器(HP DL180)拥有大量的存储空间和超快速的查找/传输function,以支持多个边缘服务器,这些边缘服务器将在本地caching媒体,也有快速的寻求,但存储要求较less。 我原来一直在使用Ubuntu,但从以前的反馈中得知,Ubuntu将不会像CentOS那样对硬件RAID有相同级别的支持,所以一直试图在服务器上切换。 在以前的托pipe专用主机的经验,他们会有一个定制的服务器configuration的CentOS 5或6所有的小铃铛像nano (我知道这是超级简单的安装,这只是一个简单的事情, CentOS最小安装的一部分,与托pipe公司的默认安装相比)。 媒体stream的软件供应商build议进行一些内核级别的优化,我很好奇,如果我现在应该继续使用CentOS 6,还是使用CentOS 7呢? 看来版本7还是非常新的,所以不确定在论坛上能否获得相同的支持质量,而且由于服务器并不是那么新,所以我想没有任何硬件需要7。 从安全的angular度来看,我是不是从7号开始就开始了自己的脚步?

3.5“15k RPM驱动器与2.5”10k RPM驱动器

与3.5“15k RPM SAS驱动器相比,2.5”10k RPM SAS驱动器的性能如何? 具体比较领域: 随机写入 随机阅读 顺序写入 顺序读取

快速分布式文件系统中的大量数据与数据库中的元数据

我的项目使用几台处理机器和一台存储机器。 当前存储与MSSQL filetable共享文件夹组织在一起。 存储中的每个文件都有一些数据库元数据。 处理机器执行他们需要来自存储器的文件及其元数据的任务。 处理机完成任务后,将结果数据存回存储器。 从那里它被另外一台加工机器拿走了,这个加工机器也生成了一些文件并将其存回。 等等。 一切都很好,但随着处理机数量的增加,我发现自己瓶颈与存储硬盘的性能。 所以我想要处理机器把文件放到分布式FS中。 从存储设备中提取负载,从中可以从中获取数据,而不仅仅是存储设备。 你能提出一个满足我需求的特定分布式FS吗? 或者还有另一种方法来解决这个问题,没有它? 在一次FS中的数据量是几个兆兆字节。 (存储可以处理这个,但处理器不能)。 数据一致性至关重要。 读写策略是:一旦写入文件 – 它的常量,可能只能被删除,但不能修改。 我目前的平台是Windows,但如果在另一个方面有一个更方便的解决scheme,我已经准备好切换它。

如何实现到同一台服务器的多个NFS / TCP连接?

我试图通过一个10Gbps链路来最大化Linux客户端和单个NFS服务器之间的NFS / TCP带宽。 尽pipe每个NFS挂载都有自己的设备(主要/次要),但是一切都归结为单个TCP连接,这是一个瓶颈。 使用iperf和多个TCP连接,我可以达到〜8Gbps,但NFS卡在一个单一的TCPstream,并限制在〜2Gbps(没有TCP调整呢)。 在Solaris上,有系统设置rpcmod:clnt_max_conns ,它允许设置系统可以使用多less并发的TCP连接到单个NFS服务器。 有没有一个相当于Linux的方法呢? 作为一种解决方法,我知道我可以在NFS服务器上设置多个IP,然后在它们上对这些挂载点进行负载平衡,但这不是最佳的。

有什么我可以做些什么来减less我的静态http请求的等待时间(在铬的networking面板)?

我正在使用apache 2.4.9在Ubuntu 14.04上运行amazon aws ec2微型实例。 拥有这个实例的原因是为了在testing和解决一些错误之前进行项目。 目前只有less数人(<10人)不定期地使用该项目(每天<20次)。 在我的项目中,我使用缩小,所以我只有几个静态内容:像1个CSS文件,可能是3个JS文件。 他们不是很大,所有文件的总和低于300Kb。 回顾瀑布图,从我的项目加载, 我注意到,在等待阶段花费了大量的时间(如果我将删除它,最有可能的网站会加载2倍以上)。 我也知道每个阶段对应什么(我甚至在这里回答高度相关的问题 ),我不知道我能做些什么来减less等待时间 。 在我的情况下,像css / js / img这样的静态资源增加了大量的等待时间,所以与编写更高效的代码无关。 我还在这里发现了另一个高度相关的问题 (这实际上是我的问题),并试图通过切换HostnameLookups Off但它没有改变任何东西。 我没有/etc/httpd/conf/httpd.conf ,因此我将它添加到/etc/apache2/sites-available/000-default.conf 。 我的configuration中也没有像LogFormat这样的东西,所以我跳过了这部分。 那么有什么我可以做的,以减less这个时间? 当我回顾一下从服务器位置收集到的同样的图表时,我看到等待时间有小幅的改善,但情况依然如此。 我明白,我可以搬到更好的服务器,更好的硬盘/内存/ CPU,但这是显而易见的。 知道有这么多的Apacheconfiguration参数,我认为这可能是有什么调整。 PS谢谢JakeGould我看着apache2.conf并修改它(而不是000-default.conf ,如前所述)。 我也修改了KeepAliveTimeOut到3和MaxKeepAliveRequests到20更适合我的网站。

奇怪的performance与php-fpm和nginx波动

我正在运行一个Web服务的负载testing。 这是一个运行在php-fpm和nginx上的使用fastcgi的php应用程序。 MySQL后端仅用于小型读取。 我总是看到一种奇特的模式:性能稳定,随着stream量的增加,性能会有所增加,但在高峰时刻性能会变得不稳定:CPU使用率不断波动。 这里是我看到的performance模式(用nmon可视化): 这个下降总是与我的负载testing工具locust.io在完成升级到我为testing设置的最高级别时的短暂停顿相符。 我的假设 :在这短暂的时刻, php-fpm主人认为负载已经消失,开始杀死工人; 在一会儿的交通恢复之后,它的响应速度不够快。 我不太明白的是,为什么它永远无法摆脱它:我看到负载均衡器背后的所有4个应用程序服务器无限期的波动。 这是我的php-fpm池configuration: [www] user = www-data group = www-data listen = /var/run/php5-fpm.sock listen.group = www-data listen.mode = 0660 pm = dynamic pm.max_children = 100 pm.start_servers = 40 pm.min_spare_servers = 40 pm.max_spare_servers = 100 pm.max_requests = 10000 我已经证实,这不是数据库的问题 – 我看到MySQL读取从站的数量翻倍后,完全相同的行为。 这是什么原因造成的? 我怎么能阻止它? 编辑: 这是一个图表,展示了我所看到的。 请注意,失败率通常会在user_count达到峰值时出现峰值,然后逐渐下降。

是否有可能使用供应商不可知的API每秒处理数百万个数据报?

我正在调查是否可以在Windows中实现HPC应用程序,使用十几个或多达200个多播组 (即使用MSI-X和RSS I can ),可以高速接收小型UDP多播数据报(大多数为100-400字节)扩展到多个内核),每个数据包进行一些处理,然后将其发送出去。 通过TCP发送,我尽可能地达到了(6.4Gb / sec),而不用打墙,但以高的速率接收数据报就成了一个问题。 在最近一次在Windows 2012 R2上使用2端口10Gb以太网网卡的高规格NUMA机器的testing中 ,我只能每秒接收数十万个UDP数据报 (早期丢弃,即没有实际处理数据)使用2×12核心消除我的应用程序的处理开销,看看它有多快),testing的12个多播组的核心部分似乎分布在一个NUMA节点的8个或10个核心上(设置了最大RSS队列到16) – 尽pipe与.net应用程序,所以本机应用程序应该能够更快。 但是,即使Len Holgate在他的高性能Windows RIOtesting中也只能使用1024字节的UDP有效载荷接收500kpps的UDP数据包 。 在QLogic的白皮书 (未提及的操作系统)中,“multithreading超小型数据包路由”(包括接收和后续发送?)的限制被设置为5.7Mpps 。 在有关Linuxnetworking的 文章中 ,每个内核的限制被设置为1Mpps到2Mpps (据报道,或多或less线性扩展),甚至有15Mpps的特殊解决scheme绕过内核。 例如netmap 可以在10GigE链路上以线速( 14.88Mpps )产生stream量,只需一个以900Mhz运行的内核。 这相当于每个数据包大约60-65个时钟周期,并且随着内核和时钟频率(4个内核,线速率在450 MHz以下)实现了良好的扩展。 在接收方面达到类似的利率 。 那么,我可以通过使用与供应商无关的API来使用标准的以太网(而不是以太网 )来使用Windows 2012 R2和标准的以太网NIC吗?

Win7命令处理器(CMD.EXE)真的很慢

对于其他人来说,Windows 7命令处理器(CMD.EXE)是否启动缓慢? 我从命令行运行这个testing(ntimer是一个来自Windows服务器资源工具包的计时工具,如果你没有安装,你可以把它忘掉): (1,1,100)的@ cmd / c rem 它所做的一切就是炮制一个新的CMD.EXE 100次。 在我的x64 Win7基础系统上运行大约需要2.3秒。 运行这是在一个x86 Win7的虚拟机大约需要5.6秒。 有趣的是,在使用旧的16位命令处理器COMMAND.COM的VM中,相同的testing需要不到1秒的时间。 为什么CMD.EXE这么慢? 我期望性能类似于我在VM中看到的COMMAND.COM。 原始机器和虚拟机之间的CMD.EXE速度比似乎是合理的,但是绝对速度是很慢的。 任何人有任何想法呢? 谢谢! 我注意到这一点,因为我正在做一个软件构build,执行时间从我的旧XP虚拟机中的15分钟到新的Win7虚拟机中的30分钟。 构build过程使用GNUMAKE实用程序并执行大量的shell命令到处理器。 PS我最初问这个在stackoverflow.com,但他们build议我去这里。