gpt4 book ai didi

Linux:加载CPU、内存和硬盘的示例程序

转载 作者:太空宇宙 更新时间:2023-11-04 04:15:18 25 4
gpt4 key购买 nike

我正在对各种 Linux 发行版进行性能分析。我想测量Linux发行版在以下场景中的性能

1)CPU利用率高

2)内存利用率高

3)IO利用率高

4) 高 CPU IO 等待

我想编写C程序来实现每个场景,这样我就可以单独或组合运行这些程序以测量性能。我编写了一些示例 c 程序来加载 CPU,但我需要 c 程序来处理其他情况。任何编程帮助将不胜感激。

最佳答案

I am doing a perform analysis on various Linux distributions.

除非您非常小心所做的事情,否则您不太可能以有意义的方式发现内核版本和发行版之间的细微性能差异。从运行程序的层面来看,发行版之间除了使用哪个 Linux 内核版本之外,几乎没有什么区别。

2) High Memory utilization

你的程序需要 malloc() 一堆内存 - 然后写入它。某些 Linux 发行版默认 overcommit memory 。只需调用 malloc() 创建一个数组并写入每个元素就足够了。

3) High IO utilization

考虑使用fio而不是在这里编写自己的代码。如果您确实需要编写自己的代码,那么您需要决定以下几件事:

  1. 随机 IO 还是顺序 IO?对于 SSD 而言,这一点不太重要,但对于磁驱动器来说,这两种情况具有非常不同的性能特征。
  2. 读还是写?不同的存储子系统的读取和写入性能可能非常不同。
  3. 直接 IO 还是缓冲 IO?您想要强调整个端到端 IO 子系统,还是只是底层存储。像 O_DIRECT 和 O_SYNC 这样的标志极大地改变了内核处理 IO 的方式。
  4. 文件系统 IO 还是 block IO?您是否有兴趣通过创建和删除文件来测试文件系统的性能,或者只是对 block 文件进行 IO?

这里可以编写的最简单的代码只是使用 open() 创建一个大文件,然后使用 rand() 与 pread() 和 pwrite() 一起在该文件中执行随机 block IO。如果你想测试文件系统,你需要多次调用 open() 和 unlink()。

IO 基准测试是一个非常微妙的主题,这就是为什么我鼓励您坚持使用易于理解的工具,例如 fio .

4) High CPU IO wait

将 IO 加载程序与 CPU 加载程序结合起来会导致 IO 等待时间较长。如果您对任何 IO 子系统施加压力,您将会遇到 IO 等待。

关于Linux:加载CPU、内存和硬盘的示例程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16759593/

25 4 0
文章推荐: html - CSS 媒体查询不适用于子元素
文章推荐: jQuery Slide to left right on a spitted Page
文章推荐: html - 在表格内格式化
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com