Questions tagged «performance»

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

3
让清漆从高速缓存中获取旧数据时发送新数据吗?
我正在缓存动态生成的页面(PHP-FPM,NGINX),并在它们前面涂上清漆,效果很好。 但是,一旦达到缓存超时,我将看到: 新客户请求页面 清漆识别缓存超时 客户等待 清漆从后端获取新页面 varnish将新页面交付给客户端(并且还缓存了页面,用于下一个立即获取它的下一个请求) 我想做的是: 客户要求页面 清漆识别超时 清漆将旧页交付给客户 清漆从后端获取新页面并将其放入缓存 以我为例,过时的信息不是一个大问题,尤其是当我们谈论几分钟后的缓存超时时,这并不是一个好地方。 但是,我不想惩罚用户排队等待,而是立即交付东西。有可能吗? 为了说明这一点,这是对配置为缓存一分钟的服务器运行围攻5分钟的示例输出: HTTP/1.1,200, 1.97, 12710,/,1,2013-06-24 00:21:06 ... HTTP/1.1,200, 1.88, 12710,/,1,2013-06-24 00:21:20 ... HTTP/1.1,200, 1.93, 12710,/,1,2013-06-24 00:22:08 ... HTTP/1.1,200, 1.89, 12710,/,1,2013-06-24 00:22:22 ... HTTP/1.1,200, 1.94, 12710,/,1,2013-06-24 00:23:10 ... HTTP/1.1,200, 1.91, 12709,/,1,2013-06-24 00:23:23 ... HTTP/1.1,200, 1.93, 12710,/,1,2013-06-24 00:24:12 ... …

1
在具有16个内核/处理器的2处理器计算机上使用SQL Server 2012时CPU使用率非常不均匀
在使用Server + Cal许可模型安装SQL Server Enterprise 2012之后,在一台具有2个处理器,每个处理器具有16个核(并且不涉及超线程)的计算机上,并使服务器承受极高的负载,第一个处理器上的16个核的利用率非常低,第二个CPU上的前4个核心被大量利用,而最后12个核心根本没有被使用(因为此sql服务器版本限制为20个核心)。总CPU利用率显示为25%左右。不幸的是,即使任务均匀地分布在20个内核上,服务器的性能也极差,它的表现不会差那么远。 Windows Server在ESX Server下的VMWare虚拟映像上运行,但是所有CPU都分配给了Windows服务器。 我们尝试更改相似性设置(例如,将大多数内核分配给CPU,将其他内核分配给I / O),但这无助于解决性能问题。 将产品版本升级到SQL Server Enterprise Core 2012,不仅允许SQL Server在第二个处理器上利用以前未使用的12个内核,而且还导致任务在所有处理器上的分配更加均匀。为了解决积压的请求,cpU利用率跃升至90%左右,一旦被追赶,则下降至33%左右,但是由于我们故障转移到新更新的版本,因此性能大大提高,并且性能问题消失了。 我想知道是否有人会导致SQL Server分配负载不均,几乎完全依赖于第二个处理器的前4个内核,而该处理器的12个内核处于空闲状态,而仅分配几个任务给第一个16个内核处理器。此外,是否有任何方法可以在不升级产品版本的情况下将负载更均匀地分配到所使用的20个内核上? 问题的另一面是,产品升级是什么导致SQL Server开始在它所识别的所有核心上平均分配负载? 感谢您对这些问题和/或链接的解答,这可能有助于我更好地理解如何理解正在发生的事情。

1
直接在端口80/443上运行Web应用程序服务器是一种不好的做法
我正在使用ec2实例在Amazon aws上托管Web应用程序。 在那种情况下,我将只运行一个应用程序。使用glassfish v3.0.1 我不想使用来运行该应用程序: www.mydomain.com:8080 or www.mydomain.com:8181 我只想使用: www.mydomain.com or https://www.mydomain.com 所以我将glassfish上的http-listener-1和http-listener-2更改为分别在端口80和443上运行。 这被认为是不良做法吗?我是一名软件工程师,我通常不处理服务器管理人员,因此在这些方面经验不足。 感谢您的指导。

1
当我看到CPU使用率很高但内存使用率较低时,应该如何调整apache?
我的CentOS Web节点(LAMP堆栈)的CPU使用率很高,但内存使用率却很低。几乎所有过程都是apache。我知道我可以添加其他Web节点,直到我的CPU使用率变得合理为止,但是我想这里有一些快速的调优技巧可能会在很长一段路要走。 CPU弹跳在90-100%之间。Mysql弹跳介于5%和45%之间。Apache构成了其余部分。 最佳: top - 21:15:49 up 46 days, 20:39, 4 users, load average: 34.17, 44.62, 51.03 Tasks: 133 total, 32 running, 101 sleeping, 0 stopped, 0 zombie Cpu(s): 90.4%us, 9.6%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.1%st Mem: 8388608k total, 6116448k used, 2272160k free, 84160k buffers Swap: 16777208k total, …

1
HP DL380 G7 + Smart Array P410i + sysbench-> RAID 10性能不佳
我正在运行的系统具有较低的IO利用率: 惠普DL380G7(24gb RAM) 具有512mb电池支持的写缓存的Smart Array p410i RAID10中的6个SAS 10k rpm 146gb驱动器 Debian Squeze linux,ext4 + LVM,hpacucli已安装 iostat(cciss / c0d1 = raid10阵列,dm-7 = 60G用于测试的lvm分区): 设备:rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz等待svctm%util cciss / c0d0 0,00 101,20 0,00 6,20 0,00 0,42 138,58 …

2
如何使pg_dump减少资源贪婪
我已经配置cron使用以下规则每天调用pg_dump: # xyz database backups: 00 01 * * * root umask 077 && pg_dump --user=xyz_system xyz | gzip > /var/xyz/backup/db/xyz/`date -u +\%Y\%m\%dT\%H\%M\%S`.gz 基本上,它可以工作。数据库相对快速且呈指数增长(但是指数不是很大)。目前,压缩后的转储大约需要160MB。转储数据库后,系统开始爬网。我使用该top命令看到的平均负载约为200, 200, 180。基本上,服务器几乎没有响应。 第一个问题是如何确定瓶颈在哪里。I / O操作繁重是否会导致性能不佳?是由表锁定问题引起的吗?也许是内存问题?pg_dump命令的输出通过管道传递到gzip命令。它是顺序的,即整个转储都放在内存中(交换问题?),然后压缩或并发(即gzip压缩得到的内容并等待更多)?可能是由其他因素引起的吗? 在第二个问题是如何使倾倒操作该系统的主要功能侵扰程度较低。据我了解,由于数据库的完整性,转储不会花费太多时间。有表写锁等。我可以做些什么来限制问题(或考虑数据库的增长而延迟它)。 在第三个问题:是否已经时间来了解更多的高级数据库配置?当没有执行数据库备份时,系统运行正常,但是数据库转储问题也许是传入问题的第一个症状?

5
ASP.NET高CPU使服务器屈指可数
好的,我们的新版本在每台服务器上随机间隔有100%的CPU峰值。长期以来,它会使网站完全无响应-这将在高峰时期,因为不同国家的人登录到网站等。 我们研究了perfmom,内存探查器,CLR探查器,sql探查器,Red Gate蚂蚁探查器,尝试在UAT中进行负载测试-但甚至无法重现该问题。这可能意味着只有成千上万的用户点击了实时站点才导致它发生。 我们确实注意到的一种模式是,新代码-残破的构建-实际上使用了明显更少的线程。 我们还在IOC上使用弹簧-它有床的声誉吗? 更糟糕的是,由于业务影响,我们无法部署到现场-因此无法将问题缩小到我们添加的新功能的子集。 我们确实被摧毁了-有人有任何战斗伤痕可以挽救我们的生命吗?


5
在“高延迟网络”上具有更好的TCP性能
我正在尝试通过Linux机器之间的“高延迟网络”改善TCP吞吐量。 我设置tcp_mem,tcp_wmem并tcp_rmem以“8192 7061504 7061504”。 我设置rmem_max,wmem_max,rmem_default并wmem_default为“7061504”。 我将netdev_max_backlog和设置txqueuelen为10000。 我将其设置tcp_congestion_control为“可缩放”。 我正在使用“ nist”(cnistnet)来模拟100ms的延迟,而我达到的带宽约为200mbps(无延迟时,我达到790mbps)。 我正在使用iperf进行测试,并使用TCPTrace分析结果,这就是我得到的: 在接收方: 最大获胜副词:5294720字节 平均获胜副词:5273959字节 发送的麻袋数:0 在发送方: 实际数据字节:3085179704 rexmt数据字节:9018144 最大值:5294577字节 平均值:3317125字节 RTT最小值:19.2 ms RTT最大值:218.2 ms RTT平均值:98.0 ms 为什么我只能达到200mbps?我怀疑“ owin”与它有关,但是我不确定(这些结果是2分钟的测试。1分钟的测试中的“平均”是1552900)… 我是否期望即使延迟为100ms,吞吐量也将接近790mbps? (我尝试在窗口配置中使用更大的数字,但似乎没有效果)

4
Nagios远程监控:NRPE与。SSH协议
我们使用Nagios监视大量(〜130)服务器。我们监视每台服务器上的CPU,磁盘,RAM和其他一些东西。我一直使用SSH来运行远程命令,纯粹是因为它几乎不需要远程服务器上的其他配置,只需安装nagios-plugins,创建nagios用户并添加SSH密钥,所有这些我都已自动完成。一个shell脚本。我从未真正考虑过在NRPE上使用SSH的性能影响。 我对Nagios服务器上的负载没有太大的担心(它的功能可能过高,它从未超过10%的CPU),但是我们每30秒运行一次远程检查,每台服务器有5个不同的检查执行。我认为SSH每次检查都需要更多资源,但是有很大的不同吗?(IE的差异足以保证切换到NRPE)。 如果有帮助,我们将监视物理服务器(通常具有8、12或16个物理核心)和Amazon EC2中型/大型实例的混合。

6
如何防止Apache跌落?
我有两台服务器托管着一个流量适中的Magento电子商务网站(每天从Google Analytics(分析)报告的浏览量为60k,我认为服务器本身报告的浏览量为80k)。除了罕见的偶发嘶哑之外,数据库服务器还可以平稳,快速地运行,但是apache服务器经常崩溃。 我已经设置了magento以使用推荐的PHP缓存(APC),以及将其自己的缓存文件保存在1.5 gig tmpfs中(此tmpfs通常会变得很满,当tmpfs为超过80%的容量)。我为Amazon Cloudfront提供大多数图像。我最近将nginx设置为apache的反向代理(nginx也提供静态文件)。我已尽力配置apache-keepalive和hostnamelookups已关闭,并且prefork的配置如下: <IfModule prefork.c> StartServers 50 MinSpareServers 50 MaxSpareServers 100 ServerLimit 512 MaxClients 256 MaxRequestsPerChild 400 </IfModule> 我尚未关闭.htaccess文件,并且访问日志记录已打开。我知道有些模块可以关闭。我不确定这三个更改中的任何一个将产生什么影响(如果有)。 apache服务器是具有6 gig RAM的VPS。截至撰写本文时,服务器正在报告load average: 17.77, 18.27, 49.76,但大约有2 GB的可用RAM。如果情况真的很糟,负载将达到120+并保持在该水平-重新启动apache会使站点恢复正常,负载也会下降。 vmstat是(当服务器报告上述负载时),我认为这表明CPU空闲值在0到70左右之间波动。iostat显示的iowait值介于0到0.2%之间。 我有点卡住了。我所知道的很少是告诉我的问题是,由于正在运行的代码和用户数量的结合,导致CPU过载。但是我经验不足,无法确定这就是问题所在。如果这是问题所在,我认为解决方案将是改进代码或使用负载均衡器将站点托管在两个VPS上。 所以,我想我的问题是: 我还能做些什么来发现服务器上的问题或瓶颈? 我可以对服务器配置进行任何明显的更改以改善这一点吗? 设置自动化系统以在负载超过一定水平时重新启动apache是​​一个好主意吗? 从上面可以看出,该站点超出服务器的可能性有多大? 编辑: 我发现有些奇怪的东西-/ var / spool / mail / root很大... 38演出。听起来不健康。这可能是问题吗?

7
Windows Server 2008 R2在文件复制操作期间陷入停顿
当我的Windows Server 2008 R2计算机执行任何大磁盘操作(将10GB文件从一个驱动器复制到另一个驱动器,通过网络复制相似的文件,合并HyperV快照,压缩大文件)时,整台计算机的性能都会大大降低,一切都变得无响应。当磁盘访问足够大而无法容纳在高速缓存中时,这在任何情况下都非常明显。 是否有任何设置可用于调整此行为?我可以接受较慢的文件传输,如果这样可以提高响应速度。 系统详细信息:Dell Optiflex 960,Core 2 Quad Q9650、8GB RAM,2个SATA驱动器-320GB(ST3320418AS)和1TB(ST31000528AS),两个均启用了NCQ,Intel 82564LM-3千兆以太网,ATI HD 3450图形,Intel ICH10桥。我们有多台这样的机器,每台机器都表现出相同的行为。尽管对于工作站而言这是过大的选择,但显然我弄错了。 更新:我想我根本不应该提到HyperV。上面的配置是我工作的公司的标准工作站设置,这不是任何类型的服务器。我最多可以使用3个虚拟机,通常我是唯一访问它们的人。即便如此,即使没有虚拟机运行,速度也会降低。在Linux机器上,我只ionice需要复制过程,而我可能会忘记它,是否有任何方法可以管理Windows上的IO优先级?

6
SMB声称“慢”
我们公司的网络(我相信这是服务器2008上运行的Windows域)非常缓慢。一个很好的例子是通过SMB复制文件-列表需要几分钟,甚至复制大小适中的文件也需要更长的时间。当被问及此问题时,IT经理(尽管他可能有其他优点,但他是一个非常顽固而不是一个非常技术性的人)举起手来,变得非常防御并给出借口,而不是倾听和尝试去做。找出问题的根本原因。 现在,意识到这个问题的人为因素需要花费一些时间和精力来解决,所以我不知道如何从技术上反驳他的借口。在这种情况下,他声称SMB是问题所在,并且它是“慢速”协议。此声明是否有任何证据(我只有轶事反证)?在这种争论中取得进展的最佳方法是什么?


3
为什么环回的延迟比鲤鱼接口的延迟少?
Stack Overflow Careers的服务类似于: user -> internet -> our fw -> nginx -> haproxy -> web farm FreeBSD是正在使用的操作系统 此框上没有防火墙或QoS nginx处理我们的SSL终止 haproxy处理负载平衡 nginx / haproxy正在以每种方式推动约15 Mbps 在正常操作期间,nginx接收HTTP请求,执行其操作,然后将请求移交给绑定到同一框上的回送地址(127.0.0.1)的haproxy实例。 为了在前几天进行一些故障排除,我将haproxy实例移到了运行nginx的同一接口上。这立即为所有请求增加了100ms的延迟。该接口不是真正的物理接口,而是鲤鱼接口。 谁能向我解释为什么会这样?与数据包队列竞争?还是因为“软”回环总是更快?我在这里缺少一些基本知识,希望有人能对我进行教育。

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.