todo's
parent
3d86dbc33b
commit
4f672577a1
|
@ -71,23 +71,23 @@ func bench(cephconn *Cephconnection, osddevice Device, buffs *[][]byte, startbuf
|
|||
red := color.New(color.FgHiRed).SprintFunc()
|
||||
darkred := color.New(color.FgRed).SprintFunc()
|
||||
green := color.New(color.FgHiGreen).SprintFunc()
|
||||
darkgreen := color.New(color.FgGreen).SprintFunc()
|
||||
darkgreen := color.New(color.FgGreen).SprintFunc() //todo delete darkgreen
|
||||
buffer.WriteString(fmt.Sprintf("Bench result for %v\n", osddevice.Name))
|
||||
infos := map[string]string{
|
||||
"front_addr": strings.Split(osddevice.Info.FrontAddr, "/")[0],
|
||||
"front_addr": strings.Split(osddevice.Info.FrontAddr, "/")[0],
|
||||
"ceph_release/version": osddevice.Info.CephRelease + "/" + osddevice.Info.CephVersionShort,
|
||||
"cpu": osddevice.Info.CPU,
|
||||
"hostname": osddevice.Info.Hostname,
|
||||
"cpu": osddevice.Info.CPU,
|
||||
"hostname": osddevice.Info.Hostname,
|
||||
"default_device_class": osddevice.Info.DefaultDeviceClass,
|
||||
"devices": osddevice.Info.Devices,
|
||||
"distro_description": osddevice.Info.DistroDescription,
|
||||
"journal_rotational": osddevice.Info.JournalRotational,
|
||||
"rotational": osddevice.Info.Rotational,
|
||||
"kernel_version": osddevice.Info.KernelVersion,
|
||||
"mem_swap_kb": osddevice.Info.MemSwapKb,
|
||||
"mem_total_kb": osddevice.Info.MemTotalKb,
|
||||
"osd_data": osddevice.Info.OsdData,
|
||||
"osd_objectstore": osddevice.Info.OsdObjectstore,
|
||||
"devices": osddevice.Info.Devices,
|
||||
"distro_description": osddevice.Info.DistroDescription,
|
||||
"journal_rotational": osddevice.Info.JournalRotational,
|
||||
"rotational": osddevice.Info.Rotational,
|
||||
"kernel_version": osddevice.Info.KernelVersion,
|
||||
"mem_swap_kb": osddevice.Info.MemSwapKb,
|
||||
"mem_total_kb": osddevice.Info.MemTotalKb,
|
||||
"osd_data": osddevice.Info.OsdData,
|
||||
"osd_objectstore": osddevice.Info.OsdObjectstore,
|
||||
}
|
||||
var infokeys []string
|
||||
width := []int{0, 0, 0, 0, 0, 0}
|
||||
|
@ -96,23 +96,23 @@ func bench(cephconn *Cephconnection, osddevice Device, buffs *[][]byte, startbuf
|
|||
}
|
||||
sort.Strings(infokeys)
|
||||
for n, key := range infokeys {
|
||||
if width[n % 3] < len(key) {
|
||||
width[n % 3] = len(key)
|
||||
if width[n%3] < len(key) {
|
||||
width[n%3] = len(key)
|
||||
}
|
||||
if width[3 + n % 3] < len(infos[key]) {
|
||||
width[3 + n % 3] = len(infos[key])
|
||||
if width[3+n%3] < len(infos[key]) {
|
||||
width[3+n%3] = len(infos[key])
|
||||
}
|
||||
}
|
||||
buffer.WriteString(
|
||||
darkgreen("osdname") + strings.Repeat(" ", width[2]-len("osdname")+2) +
|
||||
red(osddevice.Name) + strings.Repeat(" ", width[5]-len(osddevice.Name)+2))
|
||||
red(osddevice.Name) + strings.Repeat(" ", width[5]-len(osddevice.Name)+2))
|
||||
for infonum, key := range infokeys {
|
||||
if (infonum % 3) == 2 {
|
||||
buffer.WriteString("\n")
|
||||
}
|
||||
buffer.WriteString(
|
||||
darkgreen(key) + strings.Repeat(" ", width[infonum % 3]-len(key)+2) +
|
||||
yellow(infos[key]) + strings.Repeat(" ", width[3 + infonum % 3]-len(infos[key])+2))
|
||||
darkgreen(key) + strings.Repeat(" ", width[infonum%3]-len(key)+2) +
|
||||
yellow(infos[key]) + strings.Repeat(" ", width[3+infonum%3]-len(infos[key])+2))
|
||||
}
|
||||
buffer.WriteString("\n\n")
|
||||
|
||||
|
@ -120,7 +120,7 @@ func bench(cephconn *Cephconnection, osddevice Device, buffs *[][]byte, startbuf
|
|||
// iops = 1s / latency
|
||||
iops := 1000000 / latencytotal
|
||||
// avg speed = iops * block size / 1 MB
|
||||
avgspeed := (1000000 / float64(latencytotal) * float64(params.blocksize) / 1024 / 1024)
|
||||
avgspeed := 1000000 / float64(latencytotal) * float64(params.blocksize) / 1024 / 1024
|
||||
avgline := fmt.Sprintf("Avg iops: %-5v Avg speed: %.3f MB/s\n\n", iops, avgspeed)
|
||||
switch {
|
||||
case iops < 80:
|
||||
|
@ -232,7 +232,7 @@ func main() {
|
|||
|
||||
}
|
||||
|
||||
if params.parallel == true {
|
||||
if params.parallel == true { //todo make flag prepare, check objects
|
||||
go func() {
|
||||
wg.Wait()
|
||||
close(results)
|
||||
|
|
2
flags.go
2
flags.go
|
@ -70,7 +70,7 @@ func Route() Params {
|
|||
log.Println("Can't convert defined block size. 4K block size will be used")
|
||||
params.objectsize = 4194304
|
||||
}
|
||||
if params.objectsize/params.blocksize < 2 {
|
||||
if params.objectsize/params.blocksize < 2 { //todo not fatal error. warning about offsets
|
||||
log.Fatalf("Current block size: %v\nCurrent object size: %v\nObject size must be at least 2 times bigger than block size", params.blocksize, params.objectsize)
|
||||
}
|
||||
return params
|
||||
|
|
|
@ -117,6 +117,7 @@ func GetOsdForLocations(params Params, osdcrushdump OsdCrushDump, osddump OsdDum
|
|||
|
||||
osddevices := []Device{}
|
||||
bucketitems := GetCrushHostBuckets(osdcrushdump.Buckets, rootid)
|
||||
//todo check osd up and in
|
||||
if params.define != "" {
|
||||
if strings.HasPrefix(params.define, "osd.") {
|
||||
for _, hostbucket := range bucketitems {
|
||||
|
|
Loading…
Reference in New Issue