问题:我最近修改了一台服务器,在使用之前进行了testing,并且运行良好,但是几天前,我注意到通常写入根卷的数量大约是4倍。 这不是一个性能问题 – 服务器运行良好。 我的改造是相当广泛的(全面重build),所以我没有太多的理由。 简而言之,我的变化包括: 升级亚马逊的Linux(从2011.02到2011.09) – 这也导致了根卷的从ext3到ext4的变化 从php-fcgi移动到php-fpm(目前使用tcp) 从反向代理(nginx – > apache)设置移到nginx 用pure-ftpdreplacevsftpd 用opendkimreplacedkim-proxy 用ispconfigreplacewebmin 添加清漆作为dynamic文件的caching层(这些网站的点击量过大,但它是一个实验) 添加一个交换分区 基本设置: 我的交换空间安装在自己的EBS卷上 – 交换卷的写入可以忽略不计 – 我基本上把这个作为原因打了折扣(有足够的可用内存 – 而且free和iostat显示最小交换使用率)。 我的数据(mysql数据库,用户文件(网站),所有日志(来自/ var / log),邮件和清漆文件在自己的EBS卷上(使用mount –bind )。底层EBS卷挂载在/mnt/data 我剩余的文件 – 操作系统和核心服务器应用程序(例如nginx,postfix,dovecot等)是根卷上唯一的文件 – 总共为1.2GB。 新的设置运行比旧系统“更平滑”(更快,更less的内存等),并且已经稳定了20天(10月中旬) – 据我所知,高位写入一直存在。 与我所期望的相反,我的读取量很低(我的读取量大约是我写入的1.5%,无论是在根卷上的块还是字节上)。 在过去几天里,我并没有改变根卷上的任何东西(例如新的安装等),但是写入量仍然远高于预期。 目标:确定增加写入到根卷的原因(主要是弄清楚它是一个进程(和哪个进程),不同的(ext4)文件系统或另一个问题(例如内存))。 系统信息: 平台:亚马逊的EC2(t1.micro) O / S:Amazon的Linux 2011.09(CentOS / RHEL派生) Linux内核:2.6.35.14-97.44.amzn1.i686 架构:32位/ i686 […]
我们有一个非常大的(多GB)Nginxcaching目录,对于一个繁忙的站点,我们偶尔需要一次清除所有的内容。 我已经通过将caching文件夹移动到新path,在旧path上创build新的caching文件夹,然后在旧caching文件夹中解决了这个问题。 但最近当我需要在繁忙的早晨清除caching时,来自rm -rf的I / O正在让我的服务器进程受到磁盘访问的困扰,因为Nginx和它前面的服务器都是读取密集型的。 我可以看到负载平均攀升,而CPU空闲, rm -rf在iotop占98-99%的磁盘IO。 我在调用rm时已经尝试了ionice -c 3 ,但是它对于观察到的行为似乎没有明显的影响。 有没有办法驯服rm -rf来分享磁盘? 我是否需要使用不同的技术来从ionice获取线索? 更新: 相关文件系统是AWS EC2实例存储(主磁盘是EBS)。 /etc/fstab条目如下所示: /dev/xvdb /mnt auto defaults,nobootwait,comment=cloudconfig 0 2
我很惊讶,我现在已经看不到这个网站上的任何答案,也没有在MySQL文档中看到( 5.2节似乎已经logging在其他文档中)。 如果启用二进制日志,我会看到一个小的性能问题(主观上),这是预期的一点额外的IO – 但是当我启用一个普通的查询日志,我看到巨大的性能影响(运行查询的时间增加了一倍,或者更糟糕),超出了我用binlogs看到的方式。 当然,我现在正在logging每个SELECT以及每个UPDATE / INSERT,但是,其他的守护进程logging他们的每个请求(Apache,Exim)而不停顿。 我刚刚看到IO接近性能“转折点”的效果,或者是否有根本上困难的日志查询导致这种情况发生? 我希望能够logging所有的查询,使开发更容易,但我不能certificate这种硬件感觉就像我们需要通过一般的查询login来获得性能。 我当然会logging缓慢的查询,如果我禁用这个,一般用法的改进是微不足道的。 (所有这些都在Ubuntu 10.04 LTS,MySQLd 5.1.49上,但研究表明这是一个相当普遍的问题)
我有一个24核心机器,运行Ubuntu服务器10.04的94.6GiB RAM。 不同于另一台运行相同types和数量进程的服务器(4个内核),这个盒子的iowait值很高。 两台计算机都通过4个FC卡连接到VNX Raid文件服务器,24核计算机,另一台通过2个千兆以太网卡连接。 四核机器目前优于24核机器,具有较高的CPU使用率和较低的艾默生特性。 在9天的正常运行时间内,爱荷华州的平均值为16%,而且通常在30%以上。 大多数情况下,CPU使用率非常低,约为5%(由于iowait高)。 有足够的空闲内存。 我不明白的一件事是,为什么所有的数据似乎都是通过设备SDC进行的,而不是直接通过数据移动器: avg-cpu: %user %nice %system %iowait %steal %idle 6.11 0.39 0.75 16.01 0.00 76.74 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 0.00 0.00 0.00 1232 0 sdb 0.00 0.00 0.00 2960 0 sdc 1.53 43.71 44.54 36726612 37425026 dm-0 0.43 27.69 0.32 23269498 268696 dm-1 1.00 […]
我有运行CakePHP应用程序的服务器的这个问题。 服务器非常慢,我首先想到它是应用程序的问题,但后来我发现恒定的5-6MB / s写入磁盘。 find这样一个重写的原因最简单的方法是什么? 服务器正在运行Gentoo。
我正在使用Ubuntu服务器12.04,无法find负载的原因,我看到过去一周服务器响应时间的变化 在阅读Linux故障排除之后,第一部分:高负载 看起来好像CPU和RAM没有问题,这个负载可能与I / O绑定的负载有关 ,使用top命令我得到了下面的输出 这里是97.6%wa ,RAM是免费的,没有交换使用。 以下是命令iostat输出,播种89% iowait有89% iowait ubuntu@ip-my-sys-ubuntu:~$ iostat Linux 3.2.0-58-virtual (ip-172-31-6-203) 02/19/2015 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 3.05 0.01 3.64 89.50 3.76 0.03 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn xvdap1 69.91 3.81 964.37 978925 247942876 我也用iotop修复了间隔后显示99%的I / O,磁盘写我观察者为1266 KB/s 和 是不好? 随着响应时间的降低。 这是什么原因造成的? EDITS是由别人问的 iftop […]
什么是jbd2 / dm-0-8,为什么它消耗我所有的I / O使用,并导致I / O等待? 反正有禁用这个? Bonnie ++结果: http : //pastebin.com/iQCWP1qp $ sudo hdparm -t /dev/sda1 /dev/sda1: Timing buffered disk reads: 108 MB in 3.02 seconds = 35.71 MB/sec
监视块设备性能的方法很多:dstat和iostat,heck,甚至sar都会给你提供块设备I / O速率的数据。 不幸的是,我不知道有什么好的工具可以监视像磁带驱动器这样的字符设备的性能。 我知道有些工具可以提前监控性能(pv,dd + SIGUSR1,可能还有其他的),但是根据性能的不同,可以说2个小时的工作可能需要3个小时或者30个小时,而你不知道它是哪一个。 我能想到的唯一的一点是strace或类似的一些精心的使用,parsing输出的字节写入,也许与时间戳。 有没有一个我已经忘记或从未听说过的常用工具?
为了确定尺寸,我需要了解应用程序对I / O子系统的要求。 我很想做我所谓的I / O嗅探,并从块层获取事件列表,如下所示: initiator XYZ requests block 4711 from device 0815 initiator BLA writes block 1234 to device 9876 我被告知blktrace是我正在寻找,但我不能从这个工具得到这个信息。
当一台Linux服务器正在提供许多并发请求来读取许多不同的文件时,是否这样做: 寻findFile_1,读取整个文件,然后寻找File_2,读取整个文件,然后寻找File_3等 寻findFile_1,读取它的一部分(直到readahead的值?),然后寻找File_2,读取它的一部分,然后回到它已经离开的File_1,多读取它,然后寻找File_3等,等等 如果是第二种情况,那么服务器做的比寻求更多,这会大大减缓。 在那种情况下,我可以做些什么调整?