iostat -x -d
может отображать информацию о статистике ввода/вывода. Для Util из IOSTAT, объяснение:Как рассчитывается использование iostat?
Процент процессорного времени, в течение которого запросы ввода/вывода были выданы на устройство (полоса шириной использования для устройства). Насыщенность устройства возникает, когда это значение близко к 100%
Я хочу знать, как был рассчитан утилита?
Я делаю эксперимент (см. Следующий код), запустите 40 потоков, чтобы случайно прочитать 40 файлов. Я полагаю, что дисковый накопитель должен быть очень высоким, но я ошибаюсь, iostat - это как следует, любой может дать почему? ТНХ
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