- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我注意到一些云托管解决方案的磁盘 IO 非常差。这会导致一些问题,这些问题可以通过让脚本等到磁盘不那么忙来解决。
使用 PHP 是否可以在不使事情变得更糟的情况下监视文件系统的繁忙(或不那么繁忙)状态?
最佳答案
如果这是一个 Linux 系统,您可以自己计算磁盘使用量 - 您选择的实现它的语言将使用相同的概念。
您的内核很可能使用 sysfs在 /sys
上可以找到有关您系统的大量信息;我们可以定期获取有关所需磁盘的信息,并根据它们之间的差异计算使用量。
在我的系统上,我将查看磁盘,sda
,您的可能有所不同。
$ cat /sys/class/block/sda/stat
42632 25 2045318 247192 6956543 7362278 123236256 23878974 0 3703033 24119492
现在,如果我们看一下 the Kernel documentation对于 /sys/class/block/<dev>/stat
我们可以看到输出的每一列都有以下描述。
Name units description
---- ----- -----------
read I/Os requests number of read I/Os processed
read merges requests number of read I/Os merged with in-queue I/O
read sectors sectors number of sectors read
read ticks milliseconds total wait time for read requests
write I/Os requests number of write I/Os processed
write merges requests number of write I/Os merged with in-queue I/O
write sectors sectors number of sectors written
write ticks milliseconds total wait time for write requests
in_flight requests number of I/Os currently in flight
io_ticks milliseconds total time this block device has been active
time_in_queue milliseconds total wait time for all requests
如果我们在 cron 计划上运行它,并比较一些等待时间,我们可以看到我们在每个操作上等待了多长时间。您还将获得有关总 IOPS 和 RW 带宽的其他统计信息。该文档在每个领域都更加深入。
无论选择何种语言,打开以获取磁盘信息的文件描述符都是
/sys/class/block/<dev>/stat
如果我们按计划执行此操作,我们可以绘制精美的图表;)
关于php - 我如何检查 HDD 使用 PHP 的繁忙程度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38703598/
背景 我一直在使用 Win32_DiskDrive 来查找闪存(USB 笔、SD 卡等),但在其他计算机上进行一些测试后,我发现它们并不总是被发现。因此,我使用 Win32_LogicalDisk,因
在我的应用程序中,我需要大约每 50 毫秒在一个大文件(大约 2-7 GB)中连续写入数据 block (大约 2MB)。这是按顺序、循环方式完成的,所以我将一个 block 一个 block 地写入
我正在编写自己的文件搜索(为什么是因为我想要/可以 - 而不是寻找现有程序)。我可以使用 DriveInfo.GetDrives() 在 c# 中获取所有驱动器方法。理想情况下,我希望仅在独立磁盘的驱
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 上个月关门。 Improve this qu
在我们的开发环境中,我们长期以来一直通过各种 SQL Server 版本和不同的环境配置为每个产品使用特定的备份和恢复脚本,没有出现任何问题。 最近,我们已升级到 SQL Server 2012 作为
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Storing Images in DB - Yea or Nay? 非常简单,我正在托管一个用户可以上传图
这是我的案例: 我正在使用 ABCPDF 从我需要在网络上显示的 .DOCX 文件生成 HTML 文档。当您从 ABCPDF 导出为 HTML 时,您会生成一个 HTML 和一个包含支持文件(.css
我有一个使用 50 字节数据结构的文件格式(.STL,立体光刻,结构是标准的,不能更改。不要与标准模板库混淆)。直接从硬盘读取会导致读取错误数据,因为50字节不是4的倍数。 在整个 50 字节的结构中
我正在尝试在硬盘驱动器上存储一个大小约为 80Gb 的简单大型哈希表(64 位键,64 位值)。如果我想获得最佳性能,最有效的方法是什么? 要查找的键是完全随机的,我必须每 10 毫秒查找一次?是否有
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我正在尝试确定文件是否在本地驱动器上。我找到了 GetDriveType() WINAPI检索驱动器类型。然而,阅读似乎返回值的描述,这就是我的理解,它将闪存驱动器检索为 FIXED,这不是我想要的。
在发表这篇文章之前,我搜索并尝试了 4 天所有的东西,比如 https://www.codeproject.com/kb/gdi-plus/memimage.aspx ,但我是编程新手。 这段代码(不
我在 Google Cloud 中创建了一个10 GB HDD 和 3.75 GB RAM 实例,并在那里托管了一个相当繁重的数据库事务应用程序的后端/API。操作系统是 Ubuntu 14.04 L
我需要将我所有的数据库从操作系统死机的硬盘移动到新硬盘。 我已将所有文件从/var/lib/mysql 移动到新位置,一切正常,除了 mysql 用户名。当我访问 phpmyadmin 中的权限选项卡
我想运行一个机器学习算法作为我的残局研究代码,该代码迄今为止未经证实且未发布用于文本挖掘目的。文本已经获得,但从 Common Crawl 获得的 warc 格式中被删除。我正在为机器学习目的准备数据
我正在尝试用 C++ 开发一个小型基准测试系统,但我在测量 HDD 读写速度时遇到了问题。更确切地说,我测量的传输速度是巨大的:读取 400-600 MB/s,写入 1000 MB/s 以上。我有一个
发生硬盘故障。 因此,添加了一个新的主 HDD,并将旧 HDD 添加为辅助 HDD。 我正在尝试安装辅助硬盘,但出现错误。 我制作了/media/qwe/。 然后我在 Putty 上使用这些 SSH
我们有一个嵌入式 Linux 构建,它以处于 sleep 模式(硬件)的 HDD 启动。然后软件启动并为驱动器供电。 Linux 检测到驱动器正常: ata1: exception Emask 0x1
我是 Hadoop 和虚拟机 (VM) 的新手。我想要一个有 4-5 个节点的 Hadoop 集群。我的理解是每个节点都是商品硬件(运行 Unix 的 PC)。我的想法是,是否可以在外部 HDD 上创
我是一名优秀的程序员,十分优秀!