Questions tagged «performance»

有关服务器硬件和软件性能或网络性能的问题。



4
到服务器的距离的影响
我在爱尔兰(Amazon AWS)中有一个Web服务器。该服务器从德国(橙色线)显示为快,而从美国(黑色线)显示为慢。用于测试的HTTP请求是相同的。 我认为这很正常。爱尔兰与美国之间的距离大于德国与爱尔兰之间的距离,但两者之间的差距似乎太大。 除了到服务器的距离之外,还有其他可能的原因吗?

1
新的“ S3提高请求率性能”声明意味着什么
2018年7月17日,AWS正式发布了一份声明,解释说不再需要将每个S3对象密钥的前几个字符随机化以实现最佳性能:https : //aws.amazon.com/about-aws/whats-new / 2018/07 / amazon-s3-announces-request-rate-performance- / Amazon S3宣布提高请求率性能 发表于:七月17,2018 Amazon S3现在提供更高的性能,以支持每秒至少3500个添加数据的请求和每秒5500个检索数据的请求,这可以节省大量处理时间,而无需支付额外费用。每个S3前缀都可以支持这些请求速率,从而可以轻松轻松地显着提高性能。 今天在Amazon S3上运行的应用程序将享受此性能提升,而无需进行任何更改,并且在S3上构建新应用程序的客户无需进行任何应用程序自定义即可实现此性能。Amazon S3对并行请求的支持意味着您可以根据计算集群的规模来扩展S3性能,而无需对应用程序进行任何自定义。性能按前缀扩展,因此您可以并行使用任意数量的前缀以实现所需的吞吐量。前缀数量没有限制。 S3请求速率性能的提高消除了任何先前的指南,即可以随机化对象前缀以实现更快的性能。这意味着您现在可以在S3对象命名中使用逻辑或顺序命名模式,而不会影响性能。现在,所有AWS区域都可以使用此改进。有关更多信息,请访问Amazon S3开发人员指南。 很好,但也令人困惑。它说每个S3前缀都可以支持这些请求速率,从而可以轻松地显着提高性能 但是由于前缀和定界符只是GET Bucket (List Objects)列出存储桶内容时API的参数,因此谈论“每个前缀”的对象检索性能如何才有意义。每次调用都GET Bucket (List Objects)可以选择所需的任何前缀和分隔符,因此前缀不是预定义的实体。 例如,如果我的存储桶包含以下对象: a1/b-2 a1/c-3 然后,每当我列出存储桶内容时,我都可以选择使用“ /”或“-”作为分隔符,因此我可能会认为前缀是 a1/ 要么 a1/b- a1/c- 但是,由于GET ObjectAPI使用整个密钥,因此对象检索不存在特定前缀或定界符的概念。因此,我可以期望5,500 req / sec开启a1/还是5,500 req / sec a1/b-和5500开启a1/c-? 当有人建议“每个s3前缀”具有特定的性能水平(例如,每秒+5,500请求以检索数据)时,有人可以解释一下公告的含义吗?

1
在ESXi中将磁盘标记为SSD时,实际上会发生什么?
在VMWare ESXi / vSphere中,您可以将磁盘或LUN标记为“ Flash”,指示该磁盘是SSD(或LUN支持SSD / Flash存储) 当您这样做时,您会收到以下警告: 将HDD磁盘标记为闪存盘可能会降低使用它们的数据存储和服务的性能。仅在确定磁盘为闪存盘时,才将它们标记为闪存盘。 这个警告让我感到好奇:将LUN标记为闪存实际上是做什么的?它如何改变VMware的行为/性能?IE会如何降低性能,从低层次上来讲,技术上会发生什么变化?

3
为什么服务器不总是以最大速度运行?
这个问题困扰了我一段时间,而且我似乎无法在网上找到任何有关此问题的信息。我有一台运行VMware Hypervisor ESXi的服务器。当我在其上启动虚拟机时,它们通常需要2-3分钟才能启动。时间不是很长,但不是瞬间。但是,当我查看服务器上的性能日志时,处理器,RAM或磁盘使用率均未达到100%左右。通常,它们平均大约为60%-80%,因此,如果服务器有工作要做,为什么不以100%的价格工作呢? 在我看来,在任何时候,限制性能的组件都应以100%的速度运行。例如,如果我的硬盘驱动器非常慢,那么它几乎应该始终以100%的速度运行。因此,除非服务器完全处于空闲状态,否则至少一个区域(处理器,RAM,磁盘和网络)应始终为100%。 为什么不这样呢?

7
存储IOPS如何响应磁盘容量而变化?
在所有其他条件相同的情况下,如果使用更大的磁盘,存储阵列的IOPS性能将如何变化。 例如,采用包含10 X 100GB磁盘的阵列。 测量IOPS以进行连续256kb块写入(或任何IOPS指标) 假设测得的IOPS为1000 IOPS。 将阵列更改为包含10 X 200GB磁盘的阵列。使用相同的RAID配置,相同的块大小等进行格式化。 人们会期望IOPS保持不变,增加还是减少?这种变化大致是线性的吗?即增加2倍或减少2倍(因为我将磁盘容量增加了2倍) 对10 X 50GB磁盘重复这些问题。 编辑:更多上下文 这个问题是由于我的Sysadmin团队之间进行的一次对话引起的,该对话并不精通所有事物的存储。(在存储的许多方面都感到满意,但在管理SAN或其他方面的细节方面却不满意)。我们收到了一大堆新的Netapp托盘,这些托盘具有比我们现有托盘更高的每磁盘磁盘容量-两倍的容量。有人评论说,仅仅因为磁盘更大,新托盘的IOPS会更低。然后有一个汽车类比来解释这一点。两条评论都没有让我满意,所以我想将其用到团队,即Stack-Exchange-land。 汽车的类比是关于两辆汽车,它们具有不同的加速度,相同的最高速度并且行驶四分之一英里。然后将距离更改为半英里。实际上,我不记得确切的类比,但是由于我在interwebz上发现了另一个类似的类,所以我认为这可能是常见的IOPS类比。 在某些方面,对我来说,问题的实际答案并不重要,因为我们没有使用此信息来评估购买。但是,我们确实需要评估将托盘连接到现有喷头的最佳方法,以及切出骨料和体积的最佳方法。

4
为什么我的24个CPU中有1个固定为100%?
我有一个HP ProLiant DL380 G7系统,该系统使用2个6核CPU,并且启用了超线程,总共有24个逻辑CPU(如Windows所示)。 运行我们的应用程序时,系统的总CPU利用率很好,但是24个CUP之一被固定为100%: 编辑:这是这段时间内系统进程以及具有高利用率的处理器的PerfMon数据: 这正常吗?如果不是,是否有办法识别正在使用该逻辑CPU的进程?Windows PerfMon,ResMon,任务管理器和进程资源管理器没有任何帮助,只能识别出CPU为100%。

1
为什么我们的响应时间突然激增?
我们有一个使用IIS托管的ServiceStack来实现的API。在执行API的负载测试时,我们发现响应时间不错,但是一旦我们达到每台服务器约3500个并发用户,响应时间就会迅速恶化。我们有两台服务器,当有7,000个用户访问时,所有端点的平均响应时间都在500毫秒以下。这些盒子位于负载均衡器的后面,因此每台服务器可获得3500个并发。但是,一旦我们增加了并发用户总数,响应时间就会大大增加。将并发用户增加到每台服务器5,000,可以使我们每个端点的平均响应时间约为7秒。 服务器上的内存和CPU都非常低,而响应时间很好,而且响应时间变慢了。在有10,000个并发用户的高峰时,CPU平均不到50%,而RAM位于16中的3-4 GB左右。这使我们认为我们正在达到某种极限。下面的屏幕快照显示了在负载测试过程中,总共有10,000个并发用户的perfmon中的一些关键计数器。高亮显示的计数器是请求/秒。在屏幕截图的右边,您可以看到每秒请求的数量变得非常不稳定。这是响应时间慢的主要指标。一看到这种模式,我们就会注意到负载测试中的响应时间很慢。 我们如何解决此性能问题?我们正在尝试确定这是编码问题还是配置问题。web.config或IIS中是否有任何设置可以解释此行为?应用程序池正在运行.NET v4.0,IIS版本为7.5。我们对默认设置所做的唯一更改是将应用程序池“ 队列长度”值从1,000更新为5,000。我们还向Aspnet.config文件中添加了以下配置设置: <system.web> <applicationPool maxConcurrentRequestsPerCPU="5000" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000" /> </system.web> 更多细节: API的目的是合并来自各种外部源的数据并以JSON形式返回。当前,它使用InMemory缓存实现在数据层缓存单个外部调用。对资源的第一个请求将获取所有必需的数据,对同一资源的任何后续请求将从缓存中获取结果。我们有一个“缓存运行器”,它被实现为后台进程,该进程以一定的设置间隔更新缓存中的信息。我们在从外部资源中获取数据的代码周围添加了锁定。我们还实现了以异步方式从外部源获取数据的服务,因此,端点的速度应仅与最慢的外部调用一样慢(当然,除非缓存中有数据)。这是使用System.Threading.Tasks.Task类完成的。我们可以在进程可用线程数方面达到限制吗?

4
IIS7 ASP.NET应用程序-2个相同应用程序池中的2个相同应用程序,1个响应,1个没有响应
我有一个ASP.NET(v4.0)Web应用程序,该应用程序安装在虚拟目录(作为应用程序)中,并托管在其自己的应用程序池中。对于应用程序的每个实例(即每个客户)重复此操作。 应用程序池为集成(非经典)模式,并且LoadUserProfile设置为true。否则为默认设置。 每个实例当前都有自己的代码/配置副本,以及自己的数据文件夹(基本文件读/写)。 此应用程序的1个实例运行良好(用于比较的操作大约需要4秒钟)。其他所有实例运行缓慢(同一操作从10-25秒开始)。 如果我将较慢的实例移到“最快”的应用程序池中,该实例就会浮现。如果我将速度更快的实例移入速度较慢的应用程序池,则该实例将减慢爬网速度。 应用程序池最初是通过相同的方式手动创建的。后来,我使用powershell复制例程来确保更快的应用程序池的准确副本,并且仍然具有相同的行为。比较apppool.config文件显示,除了虚拟目录分配之外,它们是相同的。 据我所知,没有阻塞的共享资源,我通过关闭高性能应用程序池并重新启动进行了测试……慢仍然很慢,然后当我重新启动该应用程序池时(因此它已加载)最后)它仍然更快...

2
Linux如何处理并发磁盘IO?
当Linux服务器正在处理许多并发请求以读取许多不同的文件时,请执行以下操作: 搜索到File_1,读取整个文件,然后搜索File_2,读取整个文件,然后搜索File_3,依此类推 寻求File_1,读取它的一部分(最大为readahead值?),然后寻找File_2,读取它的一部分,然后回溯到File_1停止的地方,再读取它,然后寻找File_3,依此类推,等等 如果是第二种情况,则服务器执行的寻道操作比必要的要多得多,这将大大降低速度。在那种情况下,我可以做任何调整吗?


6
空gif(1x1 pix)文件有什么用途?
我看到一些随机页面提到使用空gif图像以某种方式提高性能。我也发现nginx有一个用于此目的的模块。我不知道的是,确切地说,如何提供这个小文件可以提高Web服务器的性能或感知的响应速度。谁能帮助我了解好处?

9
何时将虚拟服务器移至物理服务器?
虚拟化有很多好处,但是有时虚拟化服务器需要更高的性能,应该将其移至物理服务器。 我的问题是,您怎么知道这些时间是什么时候?我正在寻找可衡量的数据和指标,这些数据和指标表明将服务器移至其自己的物理机箱将对性能产生重大影响。我个人对Windows感兴趣,但是大概所有平台上的基本要素都是相同的。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.