标签: io

VMWare Esxi 寻找瓶颈

我有一个 VMWare ESxi 盒、22GB 内存、双四核至强、2 个 Sas 驱动器 + 写入缓存 raid 控制器等。

无论如何,有大约 30 个小型 XP VM 在其上运行,并且开始出现一些非常缓慢的启动时间和其他性能问题。我认为它的 I/O 但看图表不太确定要寻找什么。任何关于寻找什么的想法将不胜感激。这是我目前得到的数据:

(我觉得我的 IO 很高,但不知道要靠什么来对抗)

磁盘IO 内存使用情况 在此处输入图片说明

performance performance-monitoring io vmware-esxi

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

IO 读取每个文件的写入

我的目标是使用表上的符号链接,将 mysql 数据库在多个驱动器中均等地分开。

现在我似乎找不到在 mysql 上检查每个表的 IO、读取、写入的方法。

所以现在我在想也许在 linux 中有某种方法可以监控每个文件的 ios、读取、写入?

Iostat 显示每个设备的 IOPS;iotop 显示每个进程的 IOPS;有什么可以显示每个文件的 IOPS 吗?

linux io

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

检测磁盘写入 Linux

我的运行 centos 5.7 的网络服务器显示出相当多的磁盘写入活动,我无法真正解释。

我在 nginx、php-fpm 和 xcache 的帮助下在这台服务器上运行了一些网站。在文件系统上,我添加了noatime.

现在运行良好,但我看到每秒写入的次数很多,我无法解释。没有添加任何文件,我已禁用 nginx 访问日志。php-fpm 错误日志和 nginx 错误日志每分钟只添加几行。我已经检查了所有其他登录/var/log并且没有记录正在发生的写入次数。

平均每分钟写入大约 2 兆字节的数据,每秒大约 200 次 IO。

我怎样才能找出导致这些写入的原因?

linux hard-drive centos io

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

在集群上使用 ionice

背景:

我在工作中使用计算集群(4 个从节点和 1 个头节点),它使用 SGE 作业调度程序。最近我们一直在运行一些执行大量 IO 的作业,它一直在减慢 shell/vim 的使用(小 IO,但我们需要它 24/7 平稳运行)。我找到了 ionice,它似乎是一台计算机的完美解决方案,但我不确定它对集群是否有帮助......

题:

如果我通过带有 ionice 设置(-c2 -n0)的头节点运行一个进程(比如 vim),它是否仍然比其他计算机上的进程(从属设备上的高 IO -c2 -n4)上的进程优先于共享 HD ?

谢谢你的时间!

cluster nfs io ionice gridengine

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

来宾 I/O 性能不佳 KVM Ubuntu 12.04

我有一个在 12.04 Ubuntu 主机内运行的来宾 VM。VM 是使用 vmbuilder python 脚本创建的。

在主机上,phoronix-test-suite "aio-stress" 提供了 >1600MB/s 随机写入吞吐量的性能速度。

VM(也运行 12.04)提供大约 3MB/s 的随机写入吞吐量。远,差远了。 http://openbenchmarking.org/result/1301161-BY-20130116176

我已将主机上的默认文件映像类型从 qcow2 更改为 raw 以提高磁盘吞吐量,并确保编辑 vmbuilder 模板以使用“virtio”作为目标开发者。

这导致速度提高到 7.5MB/s - 仍远低于我的预期。

去年运行 10.04(具有 10.04 个虚拟机)的同一台机器实现了 700MB/s 的吞吐量http : //openbenchmarking.org/result/1205239-BY-20120523168

谁能指出我可能有什么问题?

performance io vmbuilder kvm-virtualization ubuntu-12.04

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

ionice对NFS客户端有影响吗?

我需要在 NFS 共享上递归删除数百万个目录,为了避免任何性能问题,我运行了以下命令:

ionice -c 3 -t find /dir -type f -exec rm {};

这将删除所有文件和剩余的空目录,我可以使用 rm -rf 删除。

但我无法说 ionice 对上述命令是否有任何影响。

来自 man,ionice 3 级:

仅当没有其他程序在定义的宽限期内请求磁盘 io 时,以空闲 io 优先级运行的程序才会获得磁盘时间。空闲 io 进程对正常系统活动的影响应该为零。

从源代码中,我看到 ionice set ioprio_set

那么,ioprio_set 是什么?

ioprio_get() 和 ioprio_set() 系统调用分别获取和设置一个或多个线程的 I/O 调度类和优先级。

这是否意味着进程线程带有额外的属性供 I/O 调度程序使用它们来调度进程的 I/O?

这向我提出了以下问题:

  • I/O 调度程序通常知道磁盘上的 I/O 负载还是只是将 I/O 调度到磁盘?
  • 如果是这种情况,即 I/O 调度程序了解磁盘上的负载并据此做出决策,我认为 IO 调度类和优先级不会对远程磁盘的 IO 调度产生任何影响。因此 ionice 不会产生任何效果。
  • 如果不是,我认为 IO 调度类和优先级可能会对远程磁盘(也如 NFS)的 IO 调度产生影响。因此,如果多个用户/进程使用相同的 NFS 磁盘,ionice 将会工作,其中 I/O 调度程序根据其他用户/进程是否使用相同的 NFS 磁盘来为给定线程调度 IO。

如果我完全错了,请纠正我。 …

nfs io ionice scheduling scheduler

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

fio 测试中的 iodepth 到底是什么意思?是队列深度吗?

我了解队列深度,即存储控制器可以处理的未完成 I/O 请求的数量(https://www.tomshardware.com/reviews/ssd-gaming-performance,2991-3.html)即,这是对处理 I/O 请求并将命令发送到磁盘 (r/w) 的存储控制器的限制,如果有超过它可以处理的请求(将由客户端重新提交),它(不严格?)会丢弃请求想必)。

并且具有高过期 I/O 请求的原因可能是多个客户端连接请求 I/O 或多个进程甚至来自请求 I/O 的单个主机(我认为,但似乎操作系统使用 I/O 调度程序合并 I/O O 请求 - 在执行定期或按需同步时源自缓冲区,并且仅发送固定数量的过期请求,以便它不会使存储设备过载?)

现在,来到 fio 手册页中 iodepth 的定义:

要针对文件保持运行的 I/O 单元数。请注意,将 iodepth 增加到 1 以上不会影响同步 ioengines(使用 verify_async 时的小度数除外)。

这符合我对队列深度的理解。如果 IO 是同步的(阻塞 IO),我们只能有一个队列。

即使是异步引擎也可能施加操作系统限制,导致无法实现所需的深度。在 Linux 上使用 libaio 并且未设置“direct=1”时可能会发生这种情况,因为缓冲 I/O 在该操作系统上不是异步的。

对这整个声明感到困惑。

密切关注 fio 输出中的 I/O 深度分布,以验证实现的深度是否符合预期。默认值:1。

我为每种 iodepth 和设备类型运行了多个测试,有 22 个并行作业,因为 CPU 数量为 24,并且使用 rwtype:顺序读取和顺序写入。Iodepths 是 1,16,256,1024,32768(我知道 32 或 64 应该是最大限制,我只是想尝试一下)。

对于所有深度和所有磁盘(RAID 6 SSD、NVME 和 NFS),结果几乎相同:除了在 32768 深度的 NVME 磁盘上顺序读取。

IO …
Run Code Online (Sandbox Code Playgroud)

io nvme

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

减少nginx引起的IO

我有很多空闲内存,但我的 IO 总是 100%util 或非常接近。有什么方法可以通过使用更多 RAM 来减少 IO?我的 iotop 显示了具有最高 io 速率的 nginx 工作进程。这是一个文件服务器,为 1mb 到 2gb 的文件提供服务。这是我的 nginx.conf

#user  nobody;
worker_processes  32;
worker_rlimit_nofile 10240;
worker_rlimit_sigpending 32768;

error_log  logs/error.log  crit;

#pid        logs/nginx.pid;


events {
    worker_connections  51200;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    access_log  off;
    limit_conn_log_level info;
    log_format  xfs  '$arg_id|$arg_usr|$remote_addr|$body_bytes_sent|$status';

    sendfile       off;
    tcp_nopush     off;
    tcp_nodelay on;
    directio 4m;
    output_buffers 3 512k;
    reset_timedout_connection on;
    open_file_cache max=5000 inactive=20s;
    open_file_cache_valid    30s;
    open_file_cache_min_uses 2;
    open_file_cache_errors   on;
    client_body_buffer_size 32k;

    server_tokens off;
    autoindex off;

    keepalive_timeout  0; …
Run Code Online (Sandbox Code Playgroud)

nginx io

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

极高的硬盘读取使用率

我的VPS配置如下:

  • 硬盘 = 25GB
  • 内存 = 256MB
  • 操作系统:CentOS 5.5

我收到了一封来自服务器提供商的电子邮件,显示我的 VPS 硬盘读取使用量在一天内是 137GB。我已经安装了 Kloxo 作为防火墙的控制面板和 APF。一个网站在我的基于 WordPress 的服务器上。

任何人都可以解释这种极端用途吗?或者指导我解决我的问题?

提前致谢 :)

hard-drive centos io wordpress

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

RAID 50 与 RAID 10 的性能?

我有一个带有 6 个 SSD 的服务器和一个支持 RAID 10 和 RAID 50 的 RAID 控制器卡,计划将其用作我们的构建服务器。它将拉入 NPM 包和许多小代码文件,编译和上传人工制品。

我们目前有一台服务器正在执行此操作,并且它正在运行 IO 瓶颈(它使用当前在 RAID1 配置中的非 SSD 驱动器)。

对于性能而言,RAID 50 和 RAID 10 中哪种 RAID 配置最适合?

从用例来看,IO 将主要是小文件的写入(随机写入)。磁盘空间和正常运行时间不是主要问题,因为我们有故障转移并且重建服务器很简单。所以我不关心在关闭阵列等之前有多少驱动器故障,唯一的考虑是性能。

RAID0 已被官僚机构排除在外。

我想真正的问题是奇偶校验的计算是否比总是写入同一个镜像磁盘花费的时间更长?

raid performance io write raid10

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

IO 利用率百分比为 4920.45% - iostat -x ,怎么了?

我曾在很长时间没有重新启动的服务器上看到磁盘 IO 的错误使用百分比。

无论如何,该服务器具有显着的 IO。今晚它会重新启动,我相信明天我们会有很好的 %use。正常运行时间为 497 天。

root@xxxxxx:~# iostat -x 1
Linux 2.6.24-27-server (xxxxxx)         10/13/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.55    0.00    0.30    7.54    0.00   91.60

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  **%util**

sda           17649.65   765.65 5478.46 5262.33 36185.00 48224.35     7.86    19.06    1.78   4.58 **4920.45**  
Run Code Online (Sandbox Code Playgroud)

唯一的问题是 nagios 认为这很重要。

任何解释都会受到欢迎。

先感谢您。


稍后补充:

如您所见,统计数据为 0,并且 % 下降得很慢。

Linux 2.6.24-27-server (xxxxxxx)         10/13/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.55    0.00    0.30    7.54    0.00   91.61 …
Run Code Online (Sandbox Code Playgroud)

linux io iostat

0
推荐指数
1
解决办法
1901
查看次数

从 top 和 iotop 找出高负载的原因

如果我想防止这种高负载,我该怎么办。
当负载高于 8 时,我的网站变慢。
请参阅 iotop 结果。

top - 20:23:10 up 127 days, 3:22, 1 user, load average: 9.92, 9.87, 9.81
任务:总共 1031 个,运行 3 个,睡眠 1027 个,停止 0 个,僵尸 1 个
Cpu(s):14.7%us、0.7%sy、0.1%ni、79.6%id、4.7%wa、0.0%hi、0.2%si、0.0%st
内存:总共 16413676k,已使用 16312548k,101128k 空闲,110836k 缓冲区
交换:总计 10190840k,已使用 3182468k,免费 7008372k,缓存 2033604k

  PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令
 2776 mysql 15 0 14.6g 10g 5220 S 405.7 67.4 21710:40 mysqld
 6201 阿帕奇 15 0 369m 16m 5356 S 3.7 0.1 0:00.40 httpd
 8447 …

linux io high-load

-3
推荐指数
1
解决办法
2057
查看次数

我应该使用多大的缓冲区来最大化磁盘 I/O 带宽?(16Kb、32Kb、64Kb 等)

我试图通过类似于 BufferedOutputStream 的缓冲 FileChannel 尽可能快地写入文件。我想知道每次写入调用应该使用的最佳数据块是什么以最大化带宽?我在 Ubuntu Linux 上。

linux bandwidth hard-drive io

-6
推荐指数
1
解决办法
1440
查看次数