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()
|
red := color.New(color.FgHiRed).SprintFunc()
|
||||||
darkred := color.New(color.FgRed).SprintFunc()
|
darkred := color.New(color.FgRed).SprintFunc()
|
||||||
green := color.New(color.FgHiGreen).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))
|
buffer.WriteString(fmt.Sprintf("Bench result for %v\n", osddevice.Name))
|
||||||
infos := map[string]string{
|
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,
|
"ceph_release/version": osddevice.Info.CephRelease + "/" + osddevice.Info.CephVersionShort,
|
||||||
"cpu": osddevice.Info.CPU,
|
"cpu": osddevice.Info.CPU,
|
||||||
"hostname": osddevice.Info.Hostname,
|
"hostname": osddevice.Info.Hostname,
|
||||||
"default_device_class": osddevice.Info.DefaultDeviceClass,
|
"default_device_class": osddevice.Info.DefaultDeviceClass,
|
||||||
"devices": osddevice.Info.Devices,
|
"devices": osddevice.Info.Devices,
|
||||||
"distro_description": osddevice.Info.DistroDescription,
|
"distro_description": osddevice.Info.DistroDescription,
|
||||||
"journal_rotational": osddevice.Info.JournalRotational,
|
"journal_rotational": osddevice.Info.JournalRotational,
|
||||||
"rotational": osddevice.Info.Rotational,
|
"rotational": osddevice.Info.Rotational,
|
||||||
"kernel_version": osddevice.Info.KernelVersion,
|
"kernel_version": osddevice.Info.KernelVersion,
|
||||||
"mem_swap_kb": osddevice.Info.MemSwapKb,
|
"mem_swap_kb": osddevice.Info.MemSwapKb,
|
||||||
"mem_total_kb": osddevice.Info.MemTotalKb,
|
"mem_total_kb": osddevice.Info.MemTotalKb,
|
||||||
"osd_data": osddevice.Info.OsdData,
|
"osd_data": osddevice.Info.OsdData,
|
||||||
"osd_objectstore": osddevice.Info.OsdObjectstore,
|
"osd_objectstore": osddevice.Info.OsdObjectstore,
|
||||||
}
|
}
|
||||||
var infokeys []string
|
var infokeys []string
|
||||||
width := []int{0, 0, 0, 0, 0, 0}
|
width := []int{0, 0, 0, 0, 0, 0}
|
||||||
|
@ -96,23 +96,23 @@ func bench(cephconn *Cephconnection, osddevice Device, buffs *[][]byte, startbuf
|
||||||
}
|
}
|
||||||
sort.Strings(infokeys)
|
sort.Strings(infokeys)
|
||||||
for n, key := range infokeys {
|
for n, key := range infokeys {
|
||||||
if width[n % 3] < len(key) {
|
if width[n%3] < len(key) {
|
||||||
width[n % 3] = len(key)
|
width[n%3] = len(key)
|
||||||
}
|
}
|
||||||
if width[3 + n % 3] < len(infos[key]) {
|
if width[3+n%3] < len(infos[key]) {
|
||||||
width[3 + n % 3] = len(infos[key])
|
width[3+n%3] = len(infos[key])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
buffer.WriteString(
|
buffer.WriteString(
|
||||||
darkgreen("osdname") + strings.Repeat(" ", width[2]-len("osdname")+2) +
|
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 {
|
for infonum, key := range infokeys {
|
||||||
if (infonum % 3) == 2 {
|
if (infonum % 3) == 2 {
|
||||||
buffer.WriteString("\n")
|
buffer.WriteString("\n")
|
||||||
}
|
}
|
||||||
buffer.WriteString(
|
buffer.WriteString(
|
||||||
darkgreen(key) + strings.Repeat(" ", width[infonum % 3]-len(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))
|
yellow(infos[key]) + strings.Repeat(" ", width[3+infonum%3]-len(infos[key])+2))
|
||||||
}
|
}
|
||||||
buffer.WriteString("\n\n")
|
buffer.WriteString("\n\n")
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ func bench(cephconn *Cephconnection, osddevice Device, buffs *[][]byte, startbuf
|
||||||
// iops = 1s / latency
|
// iops = 1s / latency
|
||||||
iops := 1000000 / latencytotal
|
iops := 1000000 / latencytotal
|
||||||
// avg speed = iops * block size / 1 MB
|
// 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)
|
avgline := fmt.Sprintf("Avg iops: %-5v Avg speed: %.3f MB/s\n\n", iops, avgspeed)
|
||||||
switch {
|
switch {
|
||||||
case iops < 80:
|
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() {
|
go func() {
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
close(results)
|
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")
|
log.Println("Can't convert defined block size. 4K block size will be used")
|
||||||
params.objectsize = 4194304
|
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)
|
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
|
return params
|
||||||
|
|
|
@ -117,6 +117,7 @@ func GetOsdForLocations(params Params, osdcrushdump OsdCrushDump, osddump OsdDum
|
||||||
|
|
||||||
osddevices := []Device{}
|
osddevices := []Device{}
|
||||||
bucketitems := GetCrushHostBuckets(osdcrushdump.Buckets, rootid)
|
bucketitems := GetCrushHostBuckets(osdcrushdump.Buckets, rootid)
|
||||||
|
//todo check osd up and in
|
||||||
if params.define != "" {
|
if params.define != "" {
|
||||||
if strings.HasPrefix(params.define, "osd.") {
|
if strings.HasPrefix(params.define, "osd.") {
|
||||||
for _, hostbucket := range bucketitems {
|
for _, hostbucket := range bucketitems {
|
||||||
|
|
Loading…
Reference in New Issue