我正在做各種Linux發行版的執行分析。我要測量Linux發行版在以下情景Linux:加載CPU,內存和硬盤的示例程序
1)高的CPU利用率
2)高內存利用率
3)高IO利用率
4)高CPU IO等待性能
我想編寫C程序以實現每個場景,以便我可以單獨或組合地運行這些程序來衡量性能。 我寫了一些示例c程序來加載CPU,但我需要c程序來處理其他情況。 任何編程幫助將不勝感激。
我正在做各種Linux發行版的執行分析。我要測量Linux發行版在以下情景Linux:加載CPU,內存和硬盤的示例程序
1)高的CPU利用率
2)高內存利用率
3)高IO利用率
4)高CPU IO等待性能
我想編寫C程序以實現每個場景,以便我可以單獨或組合地運行這些程序來衡量性能。 我寫了一些示例c程序來加載CPU,但我需要c程序來處理其他情況。 任何編程幫助將不勝感激。
我正在做各種Linux發行版的執行分析。
除非你非常小心你正在做什麼,否則你不可能以有意義的方式發現內核版本和分發之間微妙的性能差異。從正在運行的程序級別來看,發行版之間幾乎沒有什麼區別,除了它們使用的Linux內核版本。
2)高內存利用率
你的程序需要的malloc()一堆記憶 - 然後寫入。一些Linux發行版默認爲overcommit memory。只需調用malloc()創建一個數組並寫入每個元素就足夠了。
3)高IO利用率
考慮使用fio,而不是在這裏寫你自己的代碼。如果您確實需要編寫自己的代碼,那麼您需要確定幾件事情:
這裏最簡單的代碼是使用open()創建一個大文件,然後使用rand()與pread()和pwrite()一起在該文件中執行隨機塊IO。如果你想測試文件系統,你需要多次調用open()和unlink()。
IO標杆是一個非常微妙的話題,這就是爲什麼我會鼓勵你堅持使用像fio一個很好理解的工具。
4)高CPU IO等待
與你的CPU代碼,就導致高IO等待你的組合IO裝載機。如果你強調任何IO子系統,你會得到IO等待。