我们有一个在虚拟机上运行的简单 Web 应用程序,该应用程序使用 InnoDB 引擎将其数据保存在 MySQL 5.5 数据库中。一切正常运行了大约三年,但突然变得非常缓慢。
例如,我有一个非常简单的表保存地址:
CREATE TABLE `addresses` (
`address_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) CHARACTER SET latin1 NOT NULL,
`firstname` varchar(64) CHARACTER SET latin1 NOT NULL,
`street` varchar(64) CHARACTER SET latin1 NOT NULL,
`housenumber` varchar(16) CHARACTER SET latin1 NOT NULL,
`zip` varchar(5) CHARACTER SET latin1 NOT NULL,
`city` varchar(64) CHARACTER SET latin1 NOT NULL,
`email` varchar(64) CHARACTER SET latin1 NOT NULL,
`phone` varchar(16) CHARACTER SET latin1 NOT NULL,
`birthdate` date NOT NULL,
PRIMARY KEY …Run Code Online (Sandbox Code Playgroud) 我在运行 CakePHP 应用程序的服务器上遇到了这个问题。服务器非常慢,我一开始以为是应用程序问题,但后来发现写入磁盘的速度为 5-6MB/s。
找到如此大量写入的原因的最简单方法是什么?
服务器正在运行 Gentoo。
问题: 我最近改造了我的一台服务器,它在使用前进行了测试,并且运行良好,但是,几天前,我注意到对根卷的写入量大约是通常的 4 倍。这不是性能问题 - 服务器运行良好。
我的改造相当广泛(完全重建),所以就原因而言,我没有太多事情要做。简而言之,我的变化包括:
基本设置:
free和iostat显示最小的交换使用)。mount --bind)。底层 EBS 卷安装在/mnt/data新设置比旧系统运行“更流畅”(更快、更少内存等),并且已经稳定了 20 天(10 月中旬)——据我所知,提升的写入一直存在.
与我的预期相反,我的读取量很低(我的读取量约占写入量的 1.5%,无论是在我的根卷上的块还是字节数)。在过去的几天里,我没有对根卷(例如新安装等)进行任何更改,但写入量仍然比预期高得多。
目标:确定对根卷的写入增加的原因(本质上,确定它是一个进程(以及哪个进程)、不同的(ext4)文件系统或其他问题(例如内存))。
系统信息:
我很惊讶我在网站上的任何地方都看不到这个答案,也没有在 MySQL 文档中看到这个答案(第 5.2 节似乎已经很好地涵盖了日志记录!)
如果我启用 binlogs,我会看到一个小的性能损失(主观上),这在一些额外的 IO 下是可以预料的——但是当我启用一个通用查询日志时,我看到一个巨大的性能损失(运行查询的时间加倍,或更糟),远远超过我在二进制日志中看到的内容。当然,我现在正在记录每个 SELECT 以及每个 UPDATE/INSERT,但是,其他守护进程会记录他们的每个请求(Apache、Exim)而不会停止。
当涉及到 IO 时,我是否只是看到接近性能“临界点”的影响,或者日志查询是否存在一些根本性的困难导致这种情况发生?我希望能够记录所有查询以使开发更容易,但我无法证明我们需要通过一般查询登录来恢复性能的硬件类型。
当然,我会记录慢查询,如果禁用它,一般使用的改进可以忽略不计。
(所有这些都在 Ubuntu 10.04 LTS、MySQLd 5.1.49 上,但研究表明这是一个相当普遍的问题)
我有一个巨大的日志文件,需要在生产 Web 服务器上删除。如果我在 Linux 上运行它,我担心它会使系统陷入困境。有什么绝妙的想法吗?
更新:
文件系统:ext3
分区:/var(主要是日志和 MySQL 数据)
不再写入日志文件。(没有附加其他数据)
Web 服务器是 LAMP(大量 IO)
我有一个 RDS 实例,它花费了我很多钱。从我在亚马逊上的帐户活动中,我看到该实例在过去 7 天内有大约 800,000,000 个 IO 请求。
给你一点看法,我的应用程序每天只有大约 6,000 次独立访问,而且它没有建立那么多的数据库连接。
那么,IO 请求到底是什么,为什么这个数字会如此之高?如有必要,我愿意为我的应用程序尽一切努力来降低成本,但我不确定到底发生了什么。
我会很感激你的想法。
Windows 是否以与 Linux 相同的方式计算和报告“ iowait”?也就是说,进程进入“不间断睡眠”,他们花费的时间从“CPU空闲”中减去?
如果是这样,哪些 Perfmon 计数器适合检测“由于延迟服务 IO 而导致 CPU 繁忙”而不是“由于计算导致 CPU 繁忙”?
我正在使用 Ubuntu 服务器 12.04,无法找到负载原因,我看到服务器响应时间从上周开始发生变化
CPU 和 RAM 似乎没有问题,并且
通过使用我得到以下输出的命令,此负载可能与I/O 绑定负载有关top

在这里97.6%wa,RAM 是免费的,没有使用交换。
以下是命令的输出,iostat它表明存在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
Run Code Online (Sandbox Code Playgroud)
我还使用了iotop哪个固定间隔显示 99%I/O,磁盘写入我观察者为1266 KB/s

和

是坏吗?因为响应时间缩短了。这是什么原因造成的?
其他人要求的编辑
顶部 O/P
12.5kb 25.0kb 37.5kb 50.0kb 62.5kb
?????????????????????????????????????????????????????????????????????????????????????????????
ip-12-1-1-111.ap-southeast-1. => 115.231.218.130 0b …Run Code Online (Sandbox Code Playgroud) 编辑:这最终成为一个清理过程。运行zpool status -v并清楚地读取池的扫描状态。
我有一台运行 FreeBSD 的 TrueNAS 服务器,今天早上 12 点,磁盘开始不断被读取。我认为这是一些快照任务,因此我禁用了快照并重新启动服务器,但每次重新启动服务器时,它都会继续从我的存储池中读取。我也停止了所有正在运行的监狱,磁盘仍然显示 IO(下面的屏幕截图是监狱正在运行,但它们看起来与监狱停止时相同)。
我无法弄清楚哪个进程导致了这个问题。我尝试使用top -m io,但这显示没有读/写活动。
根据这个资源,top -m io在 FreeBSD 上不起作用,所以我无法找出哪个进程正在从我的磁盘读取数据:
顶级 io 模式无法正确显示统计信息
我尝试使用 检查是否有任何正在运行的快照任务ps -aux | grep rsync,但除了我的 grep 命令之外没有任何显示。
这是我检查过的一些资源:
top)iotopFreeBSD上没有)是否可以让 top 命令工作?我只想知道哪个进程正在从我的磁盘读取数据并将其杀死。
我最近一直在阅读有关磁盘的信息,这让我产生了 3 个不同的疑问。而且我无法将它们链接在一起。我混淆的三个不同术语是block size,IO和Performance。
当我遇到该语句时,我正在slashroot 上阅读有关超级块的信息
如果您的文件系统具有较大的块大小,则将执行较少的 IOPS。
由此我明白,如果我想读取 1024 KB 的数据,块大小为 4KB/4096B 的磁盘(比如 A)将比块大小为 64KB 的磁盘(比如 B)需要更多的 IO。
现在我的问题是磁盘 A 需要多少 IO?
据我了解,读取此数据所需的 IO 请求数量也取决于每个 IO 请求的大小。
So who is deciding what is the size of the IO request? Is it equal to the block size? 有人说您的应用程序决定了 IO 请求的大小,这似乎很公平,但是操作系统如何将单个请求划分为多个 IO。 There must be a limit after which the request splits in more then one IO. How to find that limit ? …io ×10
performance ×4
linux ×3
mysql ×3
amazon-ebs ×1
amazon-ec2 ×1
amazon-rds ×1
ext4 ×1
filesystems ×1
freebsd ×1
hard-drive ×1
iostat ×1
iowait ×1
load-average ×1
logging ×1
perfmon ×1
rm ×1
scaling ×1
top ×1
truenas ×1
ubuntu-12.04 ×1
windows ×1