Articles of 性能

如何检查每个进程的磁盘I / O利用率

我有一个拖延的Linux系统的问题,我发现sysstat / sar报告磁盘I / O利用率,平均服务时间以及在系统停顿时的平均等待时间的巨大峰值。 我怎么能确定哪一个过程在下一次发生的时候导致这些高峰? 是否有可能做与萨尔(即:我可以find这个信息从alreade录制sar文件? 输出为“sar -d”,系统失速发生在12.58-13.01pm左右。 12:40:01 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 12:40:01 dev8-0 11.57 0.11 710.08 61.36 0.01 0.97 0.37 0.43 12:45:01 dev8-0 13.36 0.00 972.93 72.82 0.01 1.00 0.32 0.43 12:50:01 dev8-0 13.55 0.03 616.56 45.49 0.01 0.70 0.35 0.47 12:55:01 dev8-0 13.99 0.08 917.00 65.55 […]

ServerLimit,MaxClients,MaxRequestsPerChild指令的最佳值

我正在运行一个交通密集的网站大量的dynamic内容,主要是用户生成的。 服务器是专用服务器,共有4个Intel(R)Xeon(R)CPU X3210 @ 2.13GHz处理器。 我需要知道ServerLimit和MaxClients apache的指令的最佳值,考虑到服务器有4GB的RAM和MySQL数据库在单独的服务器上运行。 面板是与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 我应该提到,使用顶级命令监视服务器,CPU使用率在高峰时段永远不会超过20%〜30%。 MySQL服务器当时也有30%〜50%的使用率,而且我一直在努力修复慢速查询,但这是一个不同的问题。 我知道这不是一个数据库瓶颈,因为静态页面在繁忙时间也需要很长的时间。 任何提示,以优化这些价值将不胜感激,谢谢。

如何selectRabbitMQ和ZeroMQ或其他?

我正在寻找一个快速和可靠的排队系统,并可能跨机器传播。 平台是Linux。 开源是可取的。 RabbitMQ和ZeroMQ都看起来不错,但我没有这些或任何其他排队系统的经验。 你能把我指向正确的方向吗?

现代文件系统中数百万文件的性能影响是什么?

假设我们使用ext4(启用了dir_index)来托pipe3M文件(平均大小为750KB),我们需要决定我们要使用的文件夹scheme。 在第一种解决scheme中 ,我们将散列函数应用于文件,并使用两个级别文件夹(第一级为1个字符,第二级为2个字符):因此,作为filex.for散列等于abcde1234 ,我们将其存储on / path / a / bc /abcde1234-filex.for。 在第二种解决scheme中 ,我们将散列函数应用于文件,并使用两个级别文件夹(第一级为2个字符,第二级为2个字符):因此,作为filex.for散列等于abcde1234 ,我们将其存储on / path / ab / de /abcde1234-filex.for。 对于第一个解决scheme,我们将有以下scheme/path/[16 folders]/[256 folders] , 每个文件夹 (文件所在的最后一个文件夹) 平均为732个文件 。 在第二种解决scheme中,我们将拥有/path/[256 folders]/[256 folders] , 每个文件夹的平均文件数为45个 。 考虑到我们要从这个scheme中写很多(基本上是nginxcaching系统)的文件( 但大多是读取 ),从性能的angular度来看,如果我们select了一个或其他的解决scheme呢? 另外,我们可以使用什么工具来检查/testing这个设置?

是否可以使用一组memcache守护进程来更有效地共享会话?

我们正在从1个networking服务器设置移动到两个networking服务器设置,我需要开始共享两个负载平衡机器之间的PHP会话。 我们已经安装了memcached ( 并启动了 ),所以我很高兴地看到,通过更改php.ini文件( session.save_handler和session.save_path )中的3行,我可以完成新服务器之间的共享会话: 我replace了: session.save_handler = files 有: session.save_handler = memcache 然后在主Web服务器上,我设置session.save_path指向localhost: session.save_path="tcp://localhost:11211" 并在奴隶networking服务器上,我设置session.save_path指向主: session.save_path="tcp://192.168.0.1:11211" 工作完成,我testing了它,它工作。 但… 显然,使用memcache意味着会话在RAM中,如果一台机器重启或memcache守护进程崩溃,会丢失 – 我有点担心,但我更担心两个networking服务器之间的networkingstream量(尤其是我们扩大规模),因为每当有人负载均衡到奴隶的networking服务器,他们的会话将通过networking从主networking服务器获取。 我想知道是否可以定义两个save_paths以便机器在使用networking之前查看自己的会话存储。 例如: 主: session.save_path="tcp://localhost:11211, tcp://192.168.0.2:11211" 奴隶: session.save_path="tcp://localhost:11211, tcp://192.168.0.1:11211" 这会成功地共享服务器上的会话,并帮助性能? 即50%的时间节省networkingstream量。 或者,这种技术仅用于故障转移(例如,当一个memcache守护进程不可达时)? 注意 :我没有真正具体询问memcache复制 – 更多关于PHP memcache客户端是否可以在池中每个memcache守护进程内达到峰值的信息,返回一个会话(如果find一个会话),并且只会创build一个新会话(如果找不到一个会话在所有的商店。 正如我正在写这个,我想我从PHP问一点,哈哈… 假设 :没有粘性会话,循环负载均衡,LAMP服务器。

有多less上下文切换是“正常的”(作为CPU核心(或其他)的function)?

您好Linux / UNIX的霸主, 你们中的任何一个人都有一个经验法则,就是在Linux服务器上有多less上下文切换(每个处理器核心)是正常的 ? 我的大学在这里提出了,他在8核x86_64机器上看到了16K。 以下是过去几天sarface的一些数据 替代文字http://src.autonomy.net.au/imagebin/81895e338fae67d3d205c09db44a81e6-Picture_10.png 要查看进程创build统计信息,请使用同一图表的对数视图。 替代文字http://src.autonomy.net.au/imagebin/7481f7e52bead4effc90248fc23c72fe-Picture_11.png 而8核心无聊死了… 替代文字http://src.autonomy.net.au/imagebin/0e94326652e977fd74edcd840f94200f-Picture_12.png CS vs IOwait(x10000比例) 替代文字http://src.autonomy.net.au/imagebin/a52a2a8a120394849c0da4045933e306-Picture_13.png 更有用的信息,以防万一有人问。 服务器工作的存储是通过FC的0.5TB SAN 有8GB的内存,主要是caching – 没有交换。

我怎样才能找出是什么导致中断在Windows上?

偶尔我遇到处理器%中断时间较长的服务器(Windows 2003和2008)。 有没有办法看到什么程序或设备造成中断?

写入速度要求:1.1GB / s的可能性?

我们将有一台机器在工作,在高峰时performance,应该能够每小时推送50个(“写头”)75GB的数据。 这是〜1100MB / s写入速度的高峰performance。 为了从机器上获得,需要两条10GBi线。 我的问题是什么样的服务器+技术可以处理/存储这样的数据stream? 目前我们使用ZFS进行数据存储,但写入速度从来都不是问题。 (我们甚至没有接近这些速度)ZFS(linux上的zfs)是否是一个选项? 我们还需要存储大量的数据,“IT指南”build议总数在50-75TB之间。 因此,除非我们想提供我们的第一个孩子,否则它可能不是所有的固态硬盘。 一些基于优秀回复的补充: 小于24小时(最可能小于6小时),最大值为50x75GB /小时, 我们预计这种情况不会很快发生,很可能我们将运行5-10x75GB /小时 这是一个前置alpha机器,但是需要满足(即使很多问号正在播放) 我们将使用NFS作为从机器到服务器的连接 布局:生成机器 – >存储(这一个) – >(安全RAID 6) – >计算集群 所以读取速度并不是必需的 ,但是从计算集群中使用它会很好(但是这是完全可选的) 最有可能的是大数据文件(不是很less)

为什么需要几十秒才能获得shell提示?

这是一种经常发生的事情,在SSH服务器(甚至在我的Mac上打开一个terminal)之后,login横幅会立即打印,但是出现shell提示需要10秒到1分钟的时间。 之后,性能很好,networking延迟并不less见。 这似乎不是一个计算困难,内存密集型或IO型任务。 这些数十亿CPU周期在做什么?

Raid 0,1,5,6,10之间有什么性能差异?

我曾经听过/读过各种突袭风格的不同演出故事。 我很好奇最好的答案是什么。