KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
iostat -x -d can display many i/o statistic info. For util of iostat, the explanation is : Percentage of CPU time during which I/O requests were issued to the device (band-width utilization for the device). Device saturation occurs when this value is close to 100% I want to know how the util was computed? I make an experiment, (see following code), start 40 thread to randomly read 40 files. I suppose the disk util should be very high, but I am wrong, the iostat is as follow, anyone can give why? 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 Code: #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; }
Tags (comma-separated)
Save Edits
Cancel