2017-03-31 28 views
0

我的目標是針對有意緩慢的文件系統運行測試,以測試混沌存儲方案中的性能指標。在同樣的意義上,有限制容器內cgroup的內存和cpu的方法,我考慮過是否有限制,我可以施加。有沒有一種方法可以輕鬆地使單元測試的特定目錄變慢?

  • 有沒有辦法將一個簡單的文件系統掛載到有意拖慢的目錄?
  • 另外,有沒有辦法通過發出一個命令行操作(不是命令行操作部分在這裏很重要 - 因爲如果我在碼頭集裝箱上運行這個操作,這是一個容器限制磁盤操作qoutas在容器上,它會在我內部爲kubernetes開始)。

回答

1

FUSE給出了一個路徑。我克隆的例子在https://github.com/fntlnz/fuse-example.git,並在戰略位置增加了一個sleep()調用fuse-example.c

21 if (strcmp(path, filepath) == 0) { 
22  stbuf->st_mode = S_IFREG | 0777; 
23  stbuf->st_nlink = 1; 
24  stbuf->st_size = strlen(filecontent); 
25  sleep(1); // Right here 
26  return 0; 
27 } 

然後我裝起來:

./bin/fuse-example -d -s -f /tmp/example 

並給了它一個鏡頭:

% cd /tmp/example 
% time cat file 
I'm the content of the only file available there 
cat file 0.00s user 0.00s system 0% cpu 1.008 total 
% 

儘管需要一些編碼,但這種方法的一個優點是可以完全控制文件系統的幾乎所有顯着屬性和質量。

+0

這是一個非常酷的想法。令人驚訝的是,沒有I/O限制器更具說明性 – jayunit100

相關問題