Merge pull request #909 from vishh/fs-fix-1

Reduce cpu priority for `du`
This commit is contained in:
Vish Kannan 2015-10-08 13:04:58 -07:00
commit bacd1cf72d
2 changed files with 25 additions and 1 deletions

View File

@ -282,7 +282,7 @@ func (self *RealFsInfo) GetDirFsDevice(dir string) (*DeviceInfo, error) {
}
func (self *RealFsInfo) GetDirUsage(dir string) (uint64, error) {
out, err := exec.Command("du", "-s", dir).CombinedOutput()
out, err := exec.Command("nice", "-n", "19", "du", "-s", dir).CombinedOutput()
if err != nil {
return 0, fmt.Errorf("du command failed on %s with output %s - %s", dir, out, err)
}

View File

@ -15,7 +15,11 @@
package fs
import (
"io/ioutil"
"os"
"testing"
"github.com/stretchr/testify/assert"
)
func TestGetDiskStatsMap(t *testing.T) {
@ -76,3 +80,23 @@ func TestFileNotExist(t *testing.T) {
t.Fatalf("getDiskStatsMap must not error for absent file: %s", err)
}
}
func TestDirUsage(t *testing.T) {
as := assert.New(t)
fsInfo, err := NewFsInfo(Context{})
as.NoError(err)
dir, err := ioutil.TempDir(os.TempDir(), "")
as.NoError(err)
defer os.RemoveAll(dir)
dataSize := 1024 * 100 //100 KB
b := make([]byte, dataSize)
f, err := ioutil.TempFile(dir, "")
as.NoError(err)
as.NoError(ioutil.WriteFile(f.Name(), b, 0700))
fi, err := f.Stat()
as.NoError(err)
expectedSize := uint64(fi.Size())
size, err := fsInfo.GetDirUsage(dir)
as.NoError(err)
as.True(expectedSize <= size, "expected dir size to be at-least %d; got size: %d", expectedSize, size)
}