标签: io

MySQL 在非常简单的 SELECT 查询上非常慢

我们有一个在虚拟机上运行的简单 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)

mysql linux performance io

10
推荐指数
2
解决办法
7344
查看次数

如何识别大量写入磁盘?

我在运行 CakePHP 应用程序的服务器上遇到了这个问题。服务器非常慢,我一开始以为是应用程序问题,但后来发现写入磁盘的速度为 5-6MB/s。

找到如此大量写入的原因的最简单方法是什么?

服务器正在运行 Gentoo。

linux performance scaling io

9
推荐指数
2
解决办法
1万
查看次数

每天写入 5.5GB 到 1.2GB 根卷 - 是以前水平的 4 倍

问题: 我最近改造了我的一台服务器,它在使用前进行了测试,并且运行良好,但是,几天前,我注意到对根卷的写入量大约是通常的 4 倍。这不是性能问题 - 服务器运行良好。

我的改造相当广泛(完全重建),所以就原因而言,我没有太多事情要做。简而言之,我的变化包括:

  • 升级 Amazon 的 Linux(从 2011.02 到 2011.09) - 这也导致根卷从 ext3 更改为 ext4
  • 从 php-fcgi 迁移到 php-fpm(目前使用 tcp)
  • 从反向代理(nginx -> apache)设置移动到仅 nginx
  • 用纯 ftpd 替换 vsftpd
  • 用 opendkim 替换 dkim-proxy
  • 用 ispconfig 替换 webmin
  • 添加清漆作为动态文件的缓存层(对于这些网站获得的点击量来说太过分了,但这是一个实验)
  • 添加交换分区

基本设置:

  • 我的交换空间安装自己的EBS卷上-在写入到交换卷忽略不计-我已经基本上打折以此为原因(有充足的可用内存-无一不freeiostat显示最小的交换使用)。
  • 我的数据(mysql 数据库、用户文件(网站)、所有日志(来自 /var/log)、邮件和清漆文件在他们自己的 EBS 卷上(使用mount --bind)。底层 EBS 卷安装在/mnt/data
  • 我剩下的文件——操作系统和核心服务器应用程序(例如 nginx、postfix、dovecot 等)——是根卷上唯一的东西——总共 1.2GB。

新设置比旧系统运行“更流畅”(更快、更少内存等),并且已经稳定了 20 天(10 月中旬)——据我所知,提升的写入一直存在.

与我的预期相反,我的读取量很低(我的读取量约占写入量的 1.5%,无论是在我的根卷上的块还是字节数)。在过去的几天里,我没有对根卷(例如新安装等)进行任何更改,但写入量仍然比预期高得多。

目标:确定对根卷的写入增加的原因(本质上,确定它是一个进程(以及哪个进程)、不同的(ext4)文件系统或其他问题(例如内存))。

系统信息:

  • 平台:亚马逊的EC2(t1.micro)
  • O/S:Amazon's Linux 2011.09(CentOS/RHEL衍生)
  • Linux 内核:2.6.35.14-97.44.amzn1.i686
  • 架构:32位/i686
  • 磁盘:3 …

ext4 io amazon-ebs alternative-php-cache

9
推荐指数
1
解决办法
1391
查看次数

日志记录会损害 MySQL 性能 - 但是,为什么呢?

我很惊讶我在网站上的任何地方都看不到这个答案,也没有在 MySQL 文档中看到这个答案(第 5.2 节似乎已经很好地涵盖了日志记录!)

如果我启用 binlogs,我会看到一个小的性能损失(主观上),这在一些额外的 IO 下是可以预料的——但是当我启用一个通用查询日志时,我看到一个巨大的性能损失(运行查询的时间加倍,或更糟),远远超过我在二进制日志中看到的内容。当然,我现在正在记录每个 SELECT 以及每个 UPDATE/INSERT,但是,其他守护进程会记录他们的每个请求(Apache、Exim)而不会停止。

当涉及到 IO 时,我是否只是看到接近性能“临界点”的影响,或者日志查询是否存在一些根本性的困难导致这种情况发生?我希望能够记录所有查询以使开发更容易,但我无法证明我们需要通过一般查询登录来恢复性能的硬件类型。

当然,我会记录慢查询,如果禁用它,一般使用的改进可以忽略不计。

(所有这些都在 Ubuntu 10.04 LTS、MySQLd 5.1.49 上,但研究表明这是一个相当普遍的问题)

mysql performance logging io

9
推荐指数
1
解决办法
3842
查看次数

有没有办法在 Linux 上删除 100GB 文件而不影响 IO/负载?

我有一个巨大的日志文件,需要在生产 Web 服务器上删除。如果我在 Linux 上运行它,我担心它会使系统陷入困境。有什么绝妙的想法吗?

更新:

文件系统:ext3

分区:/var(主要是日志和 MySQL 数据)

不再写入日志文件。(没有附加其他数据)

Web 服务器是 LAMP(大量 IO)

linux io rm

9
推荐指数
2
解决办法
1万
查看次数

Amazon RDS:什么是 IO 请求?

我有一个 RDS 实例,它花费了我很多钱。从我在亚马逊上的帐户活动中,我看到该实例在过去 7 天内有大约 800,000,000 个 IO 请求。

给你一点看法,我的应用程序每天只有大约 6,000 次独立访问,而且它没有建立那么多的数据库连接。

那么,IO 请求到底是什么,为什么这个数字会如此之高?如有必要,我愿意为我的应用程序尽一切努力来降低成本,但我不确定到底发生了什么。

我会很感激你的想法。

mysql io amazon-rds

9
推荐指数
2
解决办法
6132
查看次数

Windows“iowait”CPU利用率报告

Windows 是否以与 Linux 相同的方式计算和报告“ iowait”?也就是说,进程进入“不间断睡眠”,他们花费的时间从“CPU空闲”中减去?

如果是这样,哪些 Perfmon 计数器适合检测“由于延迟服务 IO 而导致 CPU 繁忙”而不是“由于计算导致 CPU 繁忙”?

windows perfmon io iowait iostat

9
推荐指数
1
解决办法
1万
查看次数

由于 EC2 实例上的 Ubuntu 12.04 中的 I/O 等待导致高负载

我正在使用 Ubuntu 服务器 12.04,无法找到负载原因,我看到服务器响应时间从上周开始发生变化

阅读Linux 故障排除,第一部分:高负载后

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)

io amazon-ec2 load-average amazon-web-services ubuntu-12.04

9
推荐指数
1
解决办法
5236
查看次数

在 FreeBSD 上查找哪个进程不断从磁盘读取数据

编辑:这最终成为一个清理过程。运行zpool status -v并清楚地读取池的扫描状态。

我有一台运行 FreeBSD 的 TrueNAS 服务器,今天早上 12 点,磁盘开始不断被读取。我认为这是一些快照任务,因此我禁用了快照并重新启动服务器,但每次重新启动服务器时,它都会继续从我的存储池中读取。我也停止了所有正在运行的监狱,磁盘仍然显示 IO(下面的屏幕截图是监狱正在运行,但它们看起来与监狱停止时相同)。

在此输入图像描述

我无法弄清楚哪个进程导致了这个问题。我尝试使用top -m io,但这显示没有读/写活动。

在此输入图像描述

根据这个资源top -m io在 FreeBSD 上不起作用,所以我无法找出哪个进程正在从我的磁盘读取数据:

顶级 io 模式无法正确显示统计信息

我尝试使用 检查是否有任何正在运行的快照任务ps -aux | grep rsync,但除了我的 grep 命令之外没有任何显示。

这是我检查过的一些资源:

是否可以让 top 命令工作?我只想知道哪个进程正在从我的磁盘读取数据并将其杀死。

freebsd io top truenas

9
推荐指数
1
解决办法
757
查看次数

块大小和IO之间的关系是什么?

我最近一直在阅读有关磁盘的信息,这让我产生了 3 个不同的疑问。而且我无法将它们链接在一起。我混淆的三个不同术语是block size,IOPerformance

当我遇到该语句时,我正在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 ? …

performance filesystems hard-drive io

8
推荐指数
1
解决办法
1万
查看次数