Articles of io

使用pidstat或sar报告每个进程的IO统计信息

我试图跟踪一些“可疑”进程随着时间的推移使用。 理想情况下,要通过munin使这些统计数据可用,或直接推入石墨。 但是,作为一个起点,能够以合理的空间/资源高效的方式跟踪这种使用情况,这将是非常好的。 然后能够在一段时间内检索前10名IO消费者及其数据读/写统计信息。 pidstat -d 2似乎每隔几秒钟就产生一次最高IO消耗过程的输出。 而且我知道sar有一些内置的归档,但我不知道如何将它归档到pidstat (也许在SA1_OPTIONS ?我在debian / ubuntu上)。 除了pipe道pidstat到磁盘,然后在输出上运行一些收集/聚合,有没有办法与sar做同样的事情(但更有效),然后检索统计信息?

对OLTP的硬盘驱动器进行基准testing

我有一个PostgreSQL数据库(OLTP,10GB的大小)服务器,我正在计划它的存储硬盘arrays。 我有各种磁盘可以使用。 我需要用正确的RAIDconfiguration来find最好的工作。 看什么? IOPS,MB / s,4k / 512k,什么队列深度? 用什么工具来测量(以及在哪个configuration中)? 这是一个虚拟机,所以我可以使用性能选项卡和esxtop,如果他们提供一些有用的信息的任务。

专用主机和Amazon EC2之间的I / O和CPU差异

我期待运行一个人口众多的Minecraft服务器(每次有150多名玩家在线)。 对于那些不熟悉Minecraft服务器的人来说,这是一个用Java编写的(非multithreading)应用程序(然而一些插件依赖于multithreading产品,比如MySQL)。 服务器有非常高的CPU要求以及磁盘I / O。 内存从来不是一个问题,很容易来。 所以我的问题是,Amazon EC2是否具有与传统的专用主机一样好的(或更好的)处理能力和磁盘I / O? 我不知道EC2如何通过虚拟内核进行处理,任何人都可以将它们比作Sandybridge? 与磁盘I / O一样,磁盘虚拟化与6GB / s SATA驱动器或SSD(两种选项都来自我的专用主机)相比如何? 就成本而言,它们大致相同,哪一个更好? 非常感谢! 额外的信息:对于亚马逊,我会使用亚马逊的高内存超大实例17.1 GB的内存,6.5 ECU(2个虚拟核心,每个3.25 EC2计算单位,不确定以GHz计算),420 GB本地实例存储,64位平台。 对于专用服务器,我将使用英特尔至强E3-1230 Sandy Bridge处理器(4核/8核虚拟内存@ 3.2GHz),16GB内存以及500GB 16MB SATA3 6GB / s硬盘或60 GB OCZ / 6 Gbps SATA III固态硬盘(不知道哪个更好)。

Nginx + apache2的ubuntu服务器与数百名访问者坠毁

我在Linode上有Linode 768mb RAM服务器。 而我有WordPress的博客。 在我的服务器上安装了ubuntu,nginx作为前端,apache2作为后端。 我有APC和memcache模块。 有时站点崩溃。 但服务器的CPU使用率低于临界水平(最高只有60-70)。 但是,在网站崩溃,我可以看到硬盘I / O使用的关键级别。 我读过,这可能是有关MySQL的不正确的设置。 我的nginx.conf: worker_processes 2; events { worker_connections 1024; # multi_accept on; } http { sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 12; tcp_nodelay on; gzip on; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; 我的nginx proxy.conf: proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; […]

在NFS上对文件树进行最快速的安全检查

我目前在NFSnetworking文件夹中使用以下方式的性能非常差: time find . | while read f; do test -L "$f" && f=$(readlink -m $f); grp="$(stat -c %G $f)"; perm="$(stat -c %A $f)"; done 问题1)在循环内使用variablesgrp和perm检查权限。 有没有办法降低通过networking进行这种检查的磁盘I / O数量(例如,使用find一次性读取所有元数据)? 问题2)似乎NFS没有很好地调整,通过SSHFS的类似的networking链接上的相同的操作只占三分之一的时间。 所有参数都是自动协商的。 有什么build议么?

Debian:使用极端数量的磁盘I / O的nginx

我们目前与我们的一个nginx服务器有问题。 它使用了大量的磁盘I / O。 这是被滥用的/(root – cciss / c0d0)分区。 在这里查看iotop的图片: http : //imgdrp.com/MziB iostat: ehttp://imgdrp.com/vpzw nginx安装在/ usr / local / nginx中 日志logging已被禁用(据我所知(无法find任何日志正在写入,我相信所有已被禁用的conf文件)) nginx的文件(php文件)位于另一个硬盘/分区上。 什么是创build这个I / O? 我怎样才能找出哪些文件/命令创buildI / O 期待您的回音。 /拉斯穆斯

模拟数据库I / O行为

我正在研究一些性能问题,我需要一个能够模拟典型RDBMS通常创build的相同I / O行为的工具。 我不想安装一个完整的RDBMS,只是为了testing这个问题。 有什么工具可以满足这个特定的需求吗?

更改/ sys / block / sda / queue设置是否立即生效?

更改以下设置才能生效需要多长时间: /sys/block/sda/queue/scheduler /sys/block/sda/queue/rotational /sys/block/sda/queue/read_ahead_kb 是立即/几秒钟,还是它需要重新启动进程,或系统重新启动? 如果磁盘是RAID的一部分,答案是否有所不同? 如果可以的话,请指出一些答案的文件。 同样,有没有简单的方法,通过基准testing或查看日志,告诉设置是有效的?

磁盘IO速率:是什么原因造成的,这对我意味着什么?

我刚收到一封来自Linode的邮件,说我的账户“在过去的2个小时内超过了磁盘IO的通知阈值(1000),平均值为1017.36。” 我的问题只是出于好奇:根据字面意思,磁盘IO速率必须意味着读取/写入服务器磁盘的速度。 但是因为过去几年我从来没有收到过这样的通知,所以我有兴趣知道是什么原因造成的,以及与我的网站有什么关系。 浏览量是否生成磁盘I / O? 下载generat磁盘I / O? 或者只是从字面上复制或创build文件生成它? 这与我的网站整体performance和受欢迎程度有关吗? 我只想简单介绍一下,所以我可以自己进一步研究,详细的解释是赞赏,但不是必要的。

解释/ proc / diskstats中的读取,写入和总IO时间

我注意到,当我看到/proc/diskstats的输出时,花费在阅读上的总时间,写入的总时间和执行IO的总时间之间存在差异。 例如,我在/proc/diskstats中看到一个条目: $ cat /proc/diskstats … 8 0 sda 944150584 590524 235547588959 780672196 833280352 534699043 322507689696 3472000824 1 812190100 4246357772 … 根据https://www.kernel.org/doc/Documentation/iostats.txt的文档, 字段4 – 读取的毫秒数这是所有读取花费的总毫秒数(从__make_request()到end_that_request_last())。 字段8 – 写入毫秒数这是所有写入所花费的总毫秒数(从__make_request()到end_that_request_last())的测量值。 字段10 – 执行I / O所花费的毫秒数只要字段9非零,此字段就会增加。 因此,我认为第十个领域将是第四个和第八个领域的总和,因为我认为总的IO时间是阅读时间和写作时间的总和。 但是,我从来没有注意到这种情况,而且我一直观察到第四和第八场的总和大于第十场(例如,在上面的行(780672196 + 3472000824 – 812190100 =我想知道如果有人能解释为什么这些数字是不同的,似乎第十个领域是试图捕捉一些不同于第四和第八领域的总和。