io500

package
v0.0.0-...-db53517 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 30, 2023 License: MulanPSL-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetKey

func GetKey(data string, key string, unit string, res *float64, time *float64) error

func HostFile

func HostFile(ips []string, thread int64) string

Types

type ApiItem

type ApiItem struct {
	// 测试的通用API(为了创建/删除datadir,额外的选项将被传递给IOR/mdtest)
	Api string `json:"api"`
}

func (ApiItem) ConfigData

func (apiItem ApiItem) ConfigData() string

type BlockSizeItem

type BlockSizeItem struct {
	BlockSize string `json:"blockSize"`
}

func (BlockSizeItem) ConfigData

func (item BlockSizeItem) ConfigData() string

type CollectiveItem

type CollectiveItem struct {
	Collective string `json:"collective"`
}

func (CollectiveItem) ConfigData

func (i CollectiveItem) ConfigData() string

type Debug

type Debug struct {
	StonewallTime int64 `json:"stonewallTime"`
}

func (Debug) ConfigData

func (g Debug) ConfigData() string

type ExecConfig

type ExecConfig struct {
	*ceph_cluster.CephCluster
	*ceph.CephConf

	ClientIPs            []string             `json:"clientIPs"`
	Threads              []int64              `json:"threads"`
	Verbosity            []int64              `json:"verbosity"`
	ExecConfigIorEasy    ExecConfigIorEasy    `json:"execConfigIorEasy"`
	ExecConfigMDTestEasy ExecConfigMDTestEasy `json:"execConfigMDTestEasy"`
	ExecConfigIorHard    ExecConfigIorHard    `json:"execConfigIorHard"`
	ExecConfigMDTestHard ExecConfigMDTestHard `json:"execConfigMDTestHard"`
	ExecFile             string               `json:"execFile"`
	IpAddr               string               `json:"ipAddr"`
	Runtime              int64                `json:"runtime"`
	ResultDir            string               `json:"resultDir"`
	ExecParam            string               `json:"execParam"`
	HostFile             string               `json:"hostFile"`
}

func NewExecConfig

func NewExecConfig(configPath string) (*ExecConfig, error)

func (*ExecConfig) ReadConfig

func (execConfig *ExecConfig) ReadConfig(configFilePath string) error

func (*ExecConfig) Run

func (execConfig *ExecConfig) Run() (*[]ExecConfigResult, error)

func (*ExecConfig) RunGlobal

func (execConfig *ExecConfig) RunGlobal(io500 IO500) ([]ExecConfigResult, error)

func (*ExecConfig) RunIorEasy

func (execConfig *ExecConfig) RunIorEasy(io500 IO500) ([]ExecConfigResult, error)

func (*ExecConfig) RunIorHard

func (execConfig *ExecConfig) RunIorHard(io500 IO500) ([]ExecConfigResult, error)

func (*ExecConfig) RunMDTestEasy

func (execConfig *ExecConfig) RunMDTestEasy(io500 IO500) ([]ExecConfigResult, error)

func (*ExecConfig) RunMDTestHard

func (execConfig *ExecConfig) RunMDTestHard(io500 IO500) ([]ExecConfigResult, error)

func (*ExecConfig) RunOneJob

func (execConfig *ExecConfig) RunOneJob(io500 IO500) (*ExecConfigResult, error)

type ExecConfigGlobal

type ExecConfigGlobal struct {
	Api        []string `json:"api"`
	DropCaches []bool   `json:"dropCaches"`
	Verbosity  []int64  `json:"verbosity"`
}

type ExecConfigIorEasy

type ExecConfigIorEasy struct {
	TransferSize []string `json:"transferSize"`
	BlockSize    []string `json:"blockSize"`
	FilePerProc  []bool   `json:"filePerProc"`
	UniqueDir    []bool   `json:"uniqueDir"`
	Run          bool     `json:"run"`
}

type ExecConfigIorHard

type ExecConfigIorHard struct {
	SegmentCount []int64 `json:"segmentCount"`
	Run          bool    `json:"run"`
}

type ExecConfigMDTestEasy

type ExecConfigMDTestEasy struct {
	N   []int64 `json:"n"`
	Run bool    `json:"run"`
}

type ExecConfigMDTestHard

type ExecConfigMDTestHard struct {
	N   []int64 `json:"n"`
	Run bool    `json:"run"`
}

type ExecConfigResult

type ExecConfigResult struct {
	Threads     []int64     `json:"threads"`
	IO500       IO500       `json:"io500"`
	IO500Result IO500Result `json:"io500Result"`
}

type Find

type Find struct {
	FindBase
}

func (Find) ConfigData

func (i Find) ConfigData() string

type FindBase

type FindBase struct {
	ExternalScript    string `json:"externalScript"`
	ExternalMpiArgs   string `json:"externalMpiArgs"`
	ExternalExtraArgs string `json:"externalExtraArgs"`
	NProc             string `json:"nproc"`
	RunItem
	PFindQueueLength                            int64 `json:"pFindQueueLength"`
	PFindStealNext                              bool  `json:"pfindStealNext"`
	PFindParallelizeSingleDirAccessUsingHashing bool  `json:"pFindParallelizeSingleDirAccessUsingHashing"`
}

func (FindBase) ConfigData

func (i FindBase) ConfigData() string

type FindEasy

type FindEasy struct {
	FindBase
}

func (FindEasy) ConfigData

func (i FindEasy) ConfigData() string

type FindHard

type FindHard struct {
	FindBase
}

func (FindHard) ConfigData

func (i FindHard) ConfigData() string

type Global

type Global struct {
	// The directory where the IO500 runs IO500所在目录
	DataDir string `json:"datadir"`
	// 数据目录以时间戳作为后缀。 对于并发运行几个IO500测试很有用。
	TimestampDataDir bool `json:"TimestampDataDir"`
	// The result directory
	ResultDir string `json:"resultDir"`
	// 结果目录以时间戳作为后缀。 对于并发运行几个IO500测试很有用。
	TimestampResultdir bool   `json:"timestampResultdir"`
	Api                string `json:"api"`
	// 清除缓存,这对测试很有用,并且对单节点运行很有用
	DropCaches bool `json:"dropCaches"`
	// 缓存清除命令,在每个I/O阶段之前调用
	DropCachesCmd string `json:"dropCachesCmd"`
	// 在GPU上分配I/O缓冲区
	IoBuffersOnGpu bool `json:"ioBuffersOnGpu"`
	VerbosityItem
	// 使用学生分组比赛的规则
	Scc bool `json:"scc"`
}

func DefaultIO500Global

func DefaultIO500Global() Global

func (Global) ConfigData

func (g Global) ConfigData() string

type IO500

type IO500 struct {
	ClientIPs []string `json:"clientIPs"`
	Thread    int64    `json:"thread"`

	ExecFile          string            `json:"execFile"`
	Global            Global            `json:"global"`
	Debug             Debug             `json:"debug"`
	IorEasy           IorEasy           `json:"iorEasy"`
	IorEasyWrite      IorEasyWrite      `json:"iorEasyWrite"`
	IorRnd            IorRnd            `json:"iorRnd"`
	IorRndWrite       IorRndWrite       `json:"iorRndWrite"`
	MDTestEasy        MDTestEasy        `json:"mdTestEasy"`
	MDTestEasyWrite   MDTestEasyWrite   `json:"mdTestEasyWrite"`
	MDWorkBench       MDWorkBench       `json:"mdWorkBench"`
	MDWorkBenchCreate MDWorkBenchCreate `json:"mdWorkBenchCreate"`
	Timestamp         Timestamp         `json:"timestamp"`
	FindEasy          FindEasy          `json:"findEasy"`
	IorHard           IorHard           `json:"iorHard"`
	IorHardWrite      IorHardWrite      `json:"iorHardWrite"`
	MDTestHard        MDTestHard        `json:"mdTestHard"`
	MDTestHardWrite   MDTestHardWrite   `json:"mdTestHardWrite"`
	Find              Find              `json:"find"`
	IorRndRead        IorRndRead        `json:"iorRndRead"`
	FindHard          FindHard          `json:"findHard"`
	MDWorkBenchBench  MDWorkBenchBench  `json:"mdWorkBenchBench"`
	IorEasyRead       IorEasyRead       `json:"iorEasyRead"`
	MDTestEasyStat    MDTestEasyStat    `json:"mdTestEasyStat"`
	IorHardRead       IorHardRead       `json:"iorHardRead"`
	MDTestHardStat    MDTestHardStat    `json:"mdTestHardStat"`
	MDWorkBenchDelete MDWorkBenchDelete `json:"mdWorkBenchDelete"`
	MDTestEasyDelete  MDTestEasyDelete  `json:"mdTestEasyDelete"`
	MDTestHardRead    MDTestHardRead    `json:"mdTestHardRead"`
	MDTestHardDelete  MDTestHardDelete  `json:"mdTestHardDelete"`
}

func DefaultIO500

func DefaultIO500() IO500

func (*IO500) ConfigData

func (io500 *IO500) ConfigData() string

func (*IO500) Exec

func (io500 *IO500) Exec(worker interfacer.Worker) (*IO500Result, error)

type IO500Result

type IO500Result struct {
	IorEasyWrite     float64 `json:"iorEasyWrite"`
	MDTestEasyWrite  float64 `json:"mdTestEasyWrite"`
	Timestamp        float64 `json:"timestamp"`
	IorHardWrite     float64 `json:"iorHardWrite"`
	MDTestHardWrite  float64 `json:"mdTestHardWrite"`
	Find             float64 `json:"find"`
	IorEasyRead      float64 `json:"iorEasyRead"`
	MDTestEasyStat   float64 `json:"mdTestEasyStat"`
	IorHardRead      float64 `json:"iorHardRead"`
	MDTestHardStat   float64 `json:"mdTestHardStat"`
	MDTestEasyDelete float64 `json:"mdTestEasyDelete"`
	MDTestHardRead   float64 `json:"mdTestHardRead"`
	MDTestHardDelete float64 `json:"mdTestHardDelete"`

	IorEasyWriteTime     float64 `json:"iorEasyWriteTime"`
	MDTestEasyWriteTime  float64 `json:"mdTestEasyWriteTime"`
	TimestampTime        float64 `json:"timestampTime"`
	IorHardWriteTime     float64 `json:"iorHardWriteTime"`
	MDTestHardWriteTime  float64 `json:"mdTestHardWriteTime"`
	FindTime             float64 `json:"findTime"`
	IorEasyReadTime      float64 `json:"iorEasyReadTime"`
	MDTestEasyStatTime   float64 `json:"mdTestEasyStatTime"`
	IorHardReadTime      float64 `json:"iorHardReadTime"`
	MDTestHardStatTime   float64 `json:"mdTestHardStatTime"`
	MDTestEasyDeleteTime float64 `json:"mdTestEasyDeleteTime"`
	MDTestHardReadTime   float64 `json:"mdTestHardReadTime"`
	MDTestHardDeleteTime float64 `json:"mdTestHardDeleteTime"`

	Bandwidth float64 `json:"bandwidth"`
	IOPS      float64 `json:"iops"`
	TOTAL     float64 `json:"total"`
}

func (*IO500Result) Decode

func (res *IO500Result) Decode(data string) error

type IorEasy

type IorEasy struct {
	ApiItem
	TransferSize string `json:"transferSize"`
	BlockSizeItem
	FilePerProc bool `json:"filePerProc"`
	UniqueDir   bool `json:"uniqueDir"`
	RunItem
	VerbosityItem
}

func DefaultIO500IorEasy

func DefaultIO500IorEasy() IorEasy

func (IorEasy) ConfigData

func (i IorEasy) ConfigData() string

type IorEasyRead

type IorEasyRead struct {
	ApiItem
}

func (IorEasyRead) ConfigData

func (i IorEasyRead) ConfigData() string

type IorEasyWrite

type IorEasyWrite struct {
	ApiItem
}

func (IorEasyWrite) ConfigData

func (i IorEasyWrite) ConfigData() string

type IorHard

type IorHard struct {
	ApiItem
	SegmentCount int64 `json:"segmentCount"`
	CollectiveItem
	RunItem
	VerbosityItem
}

func (IorHard) ConfigData

func (i IorHard) ConfigData() string

type IorHardRead

type IorHardRead struct {
	ApiItem
	CollectiveItem
}

func (IorHardRead) ConfigData

func (i IorHardRead) ConfigData() string

type IorHardWrite

type IorHardWrite struct {
	ApiItem
	CollectiveItem
}

func (IorHardWrite) ConfigData

func (i IorHardWrite) ConfigData() string

type IorRnd

type IorRnd struct {
	ApiItem
	BlockSizeItem
	RunItem
	VerbosityItem
	RandomPrefill int64 `json:"randomPrefill"`
}

func DefaultIO500IorRnd

func DefaultIO500IorRnd() IorRnd

func (IorRnd) ConfigData

func (i IorRnd) ConfigData() string

type IorRndRead

type IorRndRead struct {
	ApiItem
}

func (IorRndRead) ConfigData

func (i IorRndRead) ConfigData() string

type IorRndWrite

type IorRndWrite struct {
	ApiItem
}

func (IorRndWrite) ConfigData

func (i IorRndWrite) ConfigData() string

type MDTestEasy

type MDTestEasy struct {
	ApiItem
	NItem
	RunItem
}

func DefaultIO500MDTestEasy

func DefaultIO500MDTestEasy() MDTestEasy

func (MDTestEasy) ConfigData

func (i MDTestEasy) ConfigData() string

type MDTestEasyDelete

type MDTestEasyDelete struct {
	ApiItem
	RunItem
}

func (MDTestEasyDelete) ConfigData

func (i MDTestEasyDelete) ConfigData() string

type MDTestEasyStat

type MDTestEasyStat struct {
	ApiItem
	RunItem
}

func (MDTestEasyStat) ConfigData

func (i MDTestEasyStat) ConfigData() string

type MDTestEasyWrite

type MDTestEasyWrite struct {
	ApiItem
	RunItem
}

func (MDTestEasyWrite) ConfigData

func (i MDTestEasyWrite) ConfigData() string

type MDTestHard

type MDTestHard struct {
	ApiItem
	NItem
	FilesPerDir string `json:"filesPerDir"`
	RunItem
}

func (MDTestHard) ConfigData

func (i MDTestHard) ConfigData() string

type MDTestHardDelete

type MDTestHardDelete struct {
	ApiItem
	RunItem
}

func (MDTestHardDelete) ConfigData

func (i MDTestHardDelete) ConfigData() string

type MDTestHardRead

type MDTestHardRead struct {
	ApiItem
	RunItem
}

func (MDTestHardRead) ConfigData

func (i MDTestHardRead) ConfigData() string

type MDTestHardStat

type MDTestHardStat struct {
	ApiItem
	RunItem
}

func (MDTestHardStat) ConfigData

func (i MDTestHardStat) ConfigData() string

type MDTestHardWrite

type MDTestHardWrite struct {
	ApiItem
	RunItem
}

func (MDTestHardWrite) ConfigData

func (i MDTestHardWrite) ConfigData() string

type MDWorkBench

type MDWorkBench struct {
	ApiItem
	WaitingTime     float64 `json:"waitingTime"`
	PreCreatePerSet string  `json:"preCreatePerSet"`
	FilesPerProc    string  `json:"filesPerProc"`
	RunItem
	VerbosityItem
}

func (MDWorkBench) ConfigData

func (i MDWorkBench) ConfigData() string

type MDWorkBenchBench

type MDWorkBenchBench struct {
	RunItem
}

func (MDWorkBenchBench) ConfigData

func (i MDWorkBenchBench) ConfigData() string

type MDWorkBenchCreate

type MDWorkBenchCreate struct {
	RunItem
}

func (MDWorkBenchCreate) ConfigData

func (i MDWorkBenchCreate) ConfigData() string

type MDWorkBenchDelete

type MDWorkBenchDelete struct {
	RunItem
}

func (MDWorkBenchDelete) ConfigData

func (i MDWorkBenchDelete) ConfigData() string

type NItem

type NItem struct {
	N int64 `json:"n"`
}

func (NItem) ConfigData

func (i NItem) ConfigData() string

type RunItem

type RunItem struct {
	Run bool `json:"run"`
}

func (RunItem) ConfigData

func (item RunItem) ConfigData() string

type Timestamp

type Timestamp struct {
}

func (Timestamp) ConfigData

func (i Timestamp) ConfigData() string

type VerbosityItem

type VerbosityItem struct {
	Verbosity int64 `json:"verbosity"`
}

func (VerbosityItem) ConfigData

func (item VerbosityItem) ConfigData() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL