Questions tagged «performance»

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

5
bzip2太慢。多核可用
我正在运行以下命令: pg_dumpall | bzip2 > cluster-$(date --iso).sql.bz2 太久了 我用看一下过程top。bzip2进程占用一个内核的大约95%和postgres 5%。该wa条目是低的。这意味着磁盘不是瓶颈。 我该怎么做才能提高性能? 也许让bzip2使用更多的内核。服务器具有16个核心。 还是使用bzip2的替代品? 我该怎么做才能提高性能?

5
现代文件系统中数百万个文件的性能影响是什么?
假设我们正在使用ext4(启用dir_index)来托管大约3M文件(平均大小为750KB),并且我们需要确定要使用的文件夹方案。 在第一个解决方案中,我们对文件应用哈希函数,并使用两个级别的文件夹(第一级为1个字符,第二级为2个字符):因此,作为filex.for哈希值等于abcde1234,我们将其存储在/ path中/ a / bc /abcde1234-filex.for。 在第二个解决方案中,我们对文件应用哈希函数,并使用两个级别的文件夹(第一级为2个字符,第二级为2个字符):因此,作为filex.for哈希值等于abcde1234,我们将其存储在/ path中/ ab / de /abcde1234-filex.for。 对于第一个解决方案,我们将采用以下方案/path/[16 folders]/[256 folders],每个文件夹平均有732个文件(文件所在的最后一个文件夹)。 而在第二个解决方案,我们将有/path/[256 folders]/[256 folders]与平均每个文件夹45页的文件。 考虑到我们将大量(基本上是nginx缓存系统)从该方案中写入/取消链接/读取文件(但大部分是read),从性能的角度来说,如果我们选择一种或其他解决方案,它是否很重要? 另外,我们可以使用哪些工具来检查/测试此设置?

8
有效地从ZFS删除10M +文件
我编写了一个有问题的程序,意外地在/ tmp下创建了大约3000万个文件。(该错误是在几周前引入的,它每秒创建两个子目录。)我可以将/ tmp重命名为/ tmp2,现在需要删除文件。系统是FreeBSD 10,根文件系统是zfs。 同时,镜像中的一个驱动器出现故障,我已将其更换。该驱动器有两个120GB SSD磁盘。 这里的问题是:更换硬盘驱动器并重新装入整个阵列需要不到一个小时的时间。删除文件/ tmp2是另一回事。我编写了另一个程序来删除文件,并且它每秒只能删除30-70个子目录。删除所有文件需要2-4天。 重新同步整个阵列需要一个小时,而从磁盘中删除需要4天,这怎么可能?为什么我的表现这么差?每秒70次删除似乎是非常非常差的性能。 我可以手动删除/ tmp2的inode,但这不会释放空间,对吗? zfs或硬盘驱动器可能有问题吗?

5
为什么要花几十秒钟才能得到shell提示?
这是一种常见的情况,在通过SSH连接到服务器(甚至在我的Mac上打开终端)后,登录横幅会立即打印出来,但需要大约10秒钟到一分钟的时间来显示shell提示。之后,性能会很好,网络延迟也很正常。 这似乎不像计算上的困难,占用大量内存或IO繁重的任务。这数十亿个CPU周期在做什么?
30 ssh  performance  shell 

11
如何随时间监视和记录进程的内存/ CPU使用情况?[关闭]
我正在寻找一种诊断问题的方法,例如交换交换死亡,缓慢的内存进程会填充交换并杀死整个计算机(例如apache)。 我已经在使用仙人掌,可以设置nagios(尽管宁愿不设置)或munin,但据我所知它们无法记录单个程序的使用情况-仅记录整体状态。 我知道我可以每隔30秒将脚本>>滚动到某个文件,但是我想看看是否存在现有的成熟解决方案。 再一次,理想情况下它将是: 每N秒记录一次进程的内存使用情况 每N秒记录一次进程的CPU使用率 支持图表和历史记录 支持平均值-就像mysqld在过去一天中使用了43%的CPU,平均使用400MB内存 免费和开源 进程名称不是,也不应该事先知道-其想法是让它进行监视,然后查看最主要的违规者。 我的系统是Linux(OpenSUSE)。


8
写入速度要求:1.1GB / s可能吗?
我们将拥有一台正在运行的机器,该机器在达到最佳性能时,应该能够每小时推送50个(“写磁头”)x 75GB的数据。那是约1100MB / s写入速度的最高性能。要从计算机上获得该数据,它需要两条10GBi线路。我的问题是什么样的服务器+技术可以处理/存储这种数据流? 当前,对于数据存储,我们使用ZFS,尽管写入速度从来都不是问题。(我们甚至没有接近这些速度)ZFS(Linux上的zfs)是否可以选择?我们还需要存储大量数据,“ IT指南”建议总计在50-75 TB之间。因此,除非我们想为我们的长子提供孩子,否则可能不可能全部都是SSD。 根据出色的答复,添加了一些内容: 高峰期间最大为50x75GB /小时,少于24小时(最有可能是<6小时) 我们预计这种情况不会很快发生,很有可能我们将以每小时5-10x75GB的速度运行 这是pre-alpha机器,但是应该满足要求(即使有很多问号在起作用) 我们将使用NFS作为从机器到服务器的连接 布局:生成机->存储(这一个)->(安全团队6)->计算集群 因此读取速度不是必需的,但是从计算群集中使用它会很好(但这是完全可选的) 最有可能是大数据文件(不是很多)

4
如何在不使用Jobs的情况下并行运行PowerShell脚本?
如果我有一个脚本需要在多台计算机上运行,​​或者需要使用多个不同的参数运行,那么我该如何并行执行该脚本,而又不会产生使用生成新PSJobStart-Job的开销? 例如,我想在所有域成员上重新同步时间,如下所示: $computers = Get-ADComputer -filter * |Select-Object -ExpandProperty dnsHostName $creds = Get-Credential domain\user foreach($computer in $computers) { $session = New-PSSession -ComputerName $computer -Credential $creds Invoke-Command -Session $session -ScriptBlock { w32tm /resync /nowait /rediscover } } 但是我不想等待每个PSSession连接并调用命令。没有乔布斯,如何并行完成此任务?

3
ServerLimit,MaxClients,MaxRequestsPerChild指令的最佳值
我正在一个交通繁忙的网站上投放大量动态内容,大部分是用户生成的。 该服务器是专用服务器,总共有4个Intel®Xeon®CPU X3210 @ 2.13GHz处理器。考虑到服务器具有4GB的RAM并且MySQL数据库在单独的服务器上运行,我需要知道ServerLimit和MaxClients apache指令的最佳值。面板是带有CentOS的DirectAdmin。 以下是我当前的指令,但是在用户超过5k的高峰时段,注意到了一个重要的滞后-这并不是MySQL的全部错,因为页面似乎生成速度很快(我实现了页面生成时间计数器),但是时间长连接延迟,直到页面开始响应并发送到浏览器为止。 <IfModule prefork.c> StartServers 800 MinSpareServers 20 MaxSpareServers 60 ServerLimit 900 MaxClients 900 MaxRequestsPerChild 2000 </IfModule> Timeout 90 KeepAlive On KeepAliveTimeout 5 我应该提到的是,使用top命令监视服务器时,高峰时段的CPU使用率绝不会超过20%〜30%。那时MySQL服务器的使用率也达到30%到50%,我一直在努力解决缓慢的查询问题,但这是另一个问题。我知道这不是数据库瓶颈,因为在高峰时段加载静态页面也需要很长时间。 感谢您提供任何优化这些值的技巧。



1
Xeon Skylake SMP出现意外和无法解释的缓慢(和异常)内存性能
我们一直在测试使用2x Xeon Gold 6154 CPU和Supermicro X11DPH-I主板以及96GB RAM的服务器,发现与仅使用1个CPU(一个插槽为空),类似双CPU的运行相比,内存存在一些非常奇怪的性能问题。 CPU Haswell Xeon E5-2687Wv3(用于该系列测试,但其他Broadwell的性能类似),Broadwell-E i7和Skylake-X i9(用于比较)。 可以预期,具有更快内存的Skylake Xeon处理器在处理各种memcpy功能甚至内存分配(我们在下面的测试中未涵盖,我们找到了一种解决方法)时,其性能将比Haswell更快,但同时安装了两个CPU ,Skylake Xeon的速度几乎是Haswell Xeon的一半,与i7-6800k相比,甚至更低。甚至更奇怪的是,当使用Windows VirtualAllocExNuma分配NUMA节点进行内存分配时,虽然普通内存复制功能预期在远程节点上的性能要比本地节点差,但使用SSE,MMX和AVX寄存器的内存复制功能却执行得很多在远程NUMA节点上的速度比在本地节点上快(什么?)。如上所述,借助Skylake Xeons, 我不确定这是否是主板或CPU上的错误,或者是UPI与QPI的错误,还是以上都不是,但BIOS设置的组合似乎都没有用。在BIOS中禁用NUMA(测试结果中未包括)确实可以提高使用SSE,MMX和AVX寄存器的所有复制功能的性能,但是所有其他普通内存复制功能也会遭受很大的损失。 对于我们的测试程序,我们同时使用内联汇编函数和_mm内在函数进行了测试,除了汇编函数(msvc ++不会针对x64编译asm)之外,我们将Windows 10与Visual Studio 2017一起用于所有其他功能,我们使用mingw / msys的gcc到使用-c -O2标记编译obj文件,该标记包含在msvc ++链接器中。 如果系统使用的是NUMA节点,我们将对每个NUMA节点使用VirtualAllocExNuma测试两个新的用于内存分配的运算符,并对每个内存复制函数进行100个平均16MB的内存缓冲区副本的累积平均值,然后轮换我们在哪个内存分配上在每组测试之间。 所有100个源缓冲区和100个目标缓冲区都是64字节对齐的(为了兼容使用流功能的AVX512),并分别初始化为源缓冲区的增量数据和目标缓冲区的0xff。 在每种配置下,每台计算机上平均的副本数量各不相同,因为某些副本的速度快得多,而另一些配置的速度慢得多。 结果如下: Haswell Xeon E5-2687Wv3具有32GB DDR4-2400(10c / 20t,25 MB的L3缓存)的 Supermicro X10DAi上的1个CPU(1个空插槽)。但是请记住,基准测试通过100对16MB缓冲区循环,因此我们可能没有获得L3缓存命中率。 --------------------------------------------------------------------------- Averaging 7000 copies of 16MB of …

4
为什么VM快照会影响性能?
我读过一篇VMware KB文章,其中快照将直接影响VM性能。 但是我的团队一直在问我快照如何影响性能。 我想给他们坚实的理由,说明快照是性能杀手。 谁能解释一下快照实际上如何影响性能的一些理论?仅仅是因为硬盘的磁盘I / O速率会变慢吗?


6
极低的KVM磁盘性能(qcow2磁盘文件+ virtio)
设置KVM客户机时,我遇到一些严重的磁盘性能问题。通过一个简单的dd测试,qcow2映像所在的主机分区(镜像RAID阵列)的写入速度超过120MB / s,而我的来宾的写入速度为0.5到3MB / s。 该来宾配置了几个CPU和4G RAM,目前未运行其他任何功能。目前,这是一个完全最小的安装。 使用进行性能测试time dd if=/dev/zero of=/tmp/test oflag=direct bs=64k count=16000。 客户机配置为使用virtio,但这似乎不会影响性能。 主机分区是4kb对齐的(无论如何,主机上的性能还不错)。 在磁盘上使用写回缓存可以大大提高报告的性能,但是我不希望使用它;而是在磁盘上使用写回缓存。即使没有它,性能也要远胜于此。 主机和来宾都运行Ubuntu 12.04 LTS,该版本随附qemu-kvm 1.0 + noroms-0ubuntu13和libvirt 0.9.8-2ubuntu17.1。 主机启用了截止时间IO调度程序,而来宾则没有。 似乎有很多指南可以调整kvm的性能,我最终会实现的,但是目前看来我应该获得比该性能好得多的性能,因此似乎有些错误。 更新1 突然之间,当我回到现在进行测试时,速度为26.6 MB / s;这更像是我期望的w / qcrow2。如果有人对问题可能有什么想法(如果它再次神秘地出现),我将保留问题。 更新2 我不再担心qcow2的性能,只是使用原始映像切换到RAID1上的LVM,仍然使用virtio,但在磁盘驱动器上设置了cache ='none'和io ='native'。写入性能现在接近。135MB / s使用与上述相同的基本测试,因此弄清楚问题可以完全轻松解决时似乎没有什么意义。

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.