iostat -x -d
可以顯示許多I/O統計信息。 對於UTIL的iostat中,解釋是:在此期間,I/O請求被髮送到設備(頻帶寬度利用率的裝置)如何計算iostat的util?
百分比CPU的時間。當此值接近100%時發生設備飽和
我想知道util是如何計算的?
我做了一個實驗(參見下面的代碼),啓動40個線程來隨機讀取40個文件。我想磁盤util應該很高,但我錯了,iostat是如下,任何人都可以給出爲什麼? THX
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sdb1 0.01 0.44 0.24 0.57 3.44 8.14 14.34 0.00 2.28 0.66 0.05
代碼:
#include <iostream>
#include <fstream>
#include <pthread.h>
using namespace std;
void* work(void* a)
{
int* id = (int*)a;
string file = "sys.partition";
char buf[100];
sprintf(buf, "%d", *id);
file.append(string(buf));
ifstream in(file.c_str());
in.seekg(0, ios_base::end);
size_t len = in.tellg();
cout << "open file : " << file << " , " << len << endl;
srand(time(NULL));
while(true)
{
size_t pos = rand() % len;
in.seekg(pos);
//cout << pos << endl;
in.read(buf, 10);
system("sync");
}
in.close();
}
int main(int argc, char** argv)
{
static const int num = 40;
pthread_t threads[num];
for (int i = 0; i < num; i++) {
pthread_create(&threads[i], NULL, work, &i);
}
for (int i = 0; i < num; i++) {
pthread_join(threads[i], NULL);
}
return 0;
}
格式完全改變,溢出應該改進編輯器。 – Raymond 2010-12-16 06:52:45
溢出救援!改進完成! – zengr 2010-12-16 06:56:18
要麼查看@zengr對您的問題所做的更改,要麼閱讀格式幫助:http://stackoverflow.com/editing-help – 2010-12-16 07:02:44