diff --git a/config_dbtester.go b/config_dbtester.go index 25024891..55bf1cbd 100644 --- a/config_dbtester.go +++ b/config_dbtester.go @@ -131,6 +131,7 @@ func ReadConfig(fpath string, analyze bool) (*Config, error) { } const ( + defaultAgentPort int64 = 3500 defaultEtcdClientPort int64 = 2379 defaultZookeeperClientPort int64 = 2181 defaultConsulClientPort int64 = 8500 @@ -145,6 +146,9 @@ func ReadConfig(fpath string, analyze bool) (*Config, error) { ) if v, ok := cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_etcd__v2_3.String()]; ok { + if v.AgentPortToConnect == 0 { + v.AgentPortToConnect = defaultAgentPort + } if v.DatabasePortToConnect == 0 { v.DatabasePortToConnect = defaultEtcdClientPort } @@ -154,6 +158,9 @@ func ReadConfig(fpath string, analyze bool) (*Config, error) { cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_etcd__v2_3.String()] = v } if v, ok := cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_etcd__v3_1.String()]; ok { + if v.AgentPortToConnect == 0 { + v.AgentPortToConnect = defaultAgentPort + } if v.DatabasePortToConnect == 0 { v.DatabasePortToConnect = defaultEtcdClientPort } @@ -166,6 +173,9 @@ func ReadConfig(fpath string, analyze bool) (*Config, error) { cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_etcd__v3_1.String()] = v } if v, ok := cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_etcd__v3_2.String()]; ok { + if v.AgentPortToConnect == 0 { + v.AgentPortToConnect = defaultAgentPort + } if v.DatabasePortToConnect == 0 { v.DatabasePortToConnect = defaultEtcdClientPort } @@ -178,6 +188,9 @@ func ReadConfig(fpath string, analyze bool) (*Config, error) { cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_etcd__v3_2.String()] = v } if v, ok := cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_etcd__tip.String()]; ok { + if v.AgentPortToConnect == 0 { + v.AgentPortToConnect = defaultAgentPort + } if v.DatabasePortToConnect == 0 { v.DatabasePortToConnect = defaultEtcdClientPort } @@ -190,11 +203,14 @@ func ReadConfig(fpath string, analyze bool) (*Config, error) { cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_etcd__tip.String()] = v } - // TODO: add JVM flags if v, ok := cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_zookeeper__r3_4_9.String()]; ok { + if v.AgentPortToConnect == 0 { + v.AgentPortToConnect = defaultAgentPort + } if v.DatabasePortToConnect == 0 { v.DatabasePortToConnect = defaultZookeeperClientPort } + v.Flag_Zookeeper_R3_4_9.ClientPort = v.DatabasePortToConnect if v.Flag_Zookeeper_R3_4_9.TickTime == 0 { v.Flag_Zookeeper_R3_4_9.TickTime = defaultZookeeperTickTime @@ -214,9 +230,13 @@ func ReadConfig(fpath string, analyze bool) (*Config, error) { cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_zookeeper__r3_4_9.String()] = v } if v, ok := cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_zookeeper__r3_5_2_alpha.String()]; ok { + if v.AgentPortToConnect == 0 { + v.AgentPortToConnect = defaultAgentPort + } if v.DatabasePortToConnect == 0 { v.DatabasePortToConnect = defaultZookeeperClientPort } + v.Flag_Zookeeper_R3_5_2Alpha.ClientPort = v.DatabasePortToConnect if v.Flag_Zookeeper_R3_5_2Alpha.TickTime == 0 { v.Flag_Zookeeper_R3_5_2Alpha.TickTime = defaultZookeeperTickTime @@ -240,12 +260,18 @@ func ReadConfig(fpath string, analyze bool) (*Config, error) { } if v, ok := cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_consul__v0_7_5.String()]; ok { + if v.AgentPortToConnect == 0 { + v.AgentPortToConnect = defaultAgentPort + } if v.DatabasePortToConnect == 0 { v.DatabasePortToConnect = defaultConsulClientPort } cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_consul__v0_7_5.String()] = v } if v, ok := cfg.DatabaseIDToConfigClientMachineAgentControl[dbtesterpb.DatabaseID_consul__v0_8_0.String()]; ok { + if v.AgentPortToConnect == 0 { + v.AgentPortToConnect = defaultAgentPort + } if v.DatabasePortToConnect == 0 { v.DatabasePortToConnect = defaultConsulClientPort } diff --git a/config_dbtester_test.go b/config_dbtester_test.go index bce8df1a..cc6c1d20 100644 --- a/config_dbtester_test.go +++ b/config_dbtester_test.go @@ -37,6 +37,7 @@ func TestConfig(t *testing.T) { - javac 1.8.0_121 - Java(TM) SE Runtime Environment (build 1.8.0_121-b13) - Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) + - ` + "`/usr/bin/java -Djute.maxbuffer=33554432 -Xms50G -Xmx50G`" + ` - Consul v0.7.5 (Go 1.8.0) `, ConfigClientMachineInitial: dbtesterpb.ConfigClientMachineInitial{ @@ -102,6 +103,9 @@ func TestConfig(t *testing.T) { AgentPortToConnect: 3500, AgentEndpoints: []string{"10.240.0.21:3500", "10.240.0.22:3500", "10.240.0.23:3500"}, Flag_Zookeeper_R3_5_2Alpha: &dbtesterpb.Flag_Zookeeper_R3_5_2Alpha{ + JavaDJuteMaxBuffer: 33554432, + JavaXms: "50G", + JavaXmx: "50G", ClientPort: 2181, TickTime: 2000, InitLimit: 5, diff --git a/config_dbtester_test.yaml b/config_dbtester_test.yaml index ef1e0f33..cc56d6ee 100644 --- a/config_dbtester_test.yaml +++ b/config_dbtester_test.yaml @@ -9,6 +9,7 @@ test_description: | - javac 1.8.0_121 - Java(TM) SE Runtime Environment (build 1.8.0_121-b13) - Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) + - `/usr/bin/java -Djute.maxbuffer=33554432 -Xms50G -Xmx50G` - Consul v0.7.5 (Go 1.8.0) # common control options for all client machines @@ -85,6 +86,14 @@ datatbase_id_to_config_client_machine_agent_control: # http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html zookeeper__r3_5_2_alpha: + # maximum size, in bytes, of a request or response + # set it to 33 MB + java_d_jute_max_buffer: 33554432 + + # JVM min,max heap size + java_xms: 50G + java_xmx: 50G + # tickTime; the length of a single tick, which is the basic time unit used by ZooKeeper, # as measured in milliseconds. tick_time: 2000 diff --git a/control/command.go b/control/command.go index c4b53f3d..802a0d57 100644 --- a/control/command.go +++ b/control/command.go @@ -55,29 +55,21 @@ func init() { break } - Command.PersistentFlags().StringVar(&databaseID, "database-id", "etcdv3", "etcdv2, etcdv3, zookeeper, consul, zetcd, cetcd.") + Command.PersistentFlags().StringVar(&databaseID, "database-id", "etcd__tip", "See dbtesterpb/database_id.pb.go") Command.PersistentFlags().StringVarP(&configPath, "config", "c", "", "YAML configuration file path.") Command.PersistentFlags().StringVar(&diskDevice, "disk-device", dn, "Disk device to collect disk statistics metrics from.") Command.PersistentFlags().StringVar(&networkInterface, "network-interface", nt, "Network interface to record in/outgoing packets.") } func commandFunc(cmd *cobra.Command, args []string) error { - switch databaseID { - case "etcdv2": - case "etcdv3": - case "zookeeper": - case "zetcd": - case "consul": - case "cetcd": - default: - return fmt.Errorf("%q is not supported", databaseID) + if !dbtesterpb.IsValidDatabaseID(databaseID) { + return fmt.Errorf("database id %q is unknown", databaseID) } cfg, err := dbtester.ReadConfig(configPath, false) if err != nil { return err } - gcfg, ok := cfg.DatabaseIDToConfigClientMachineAgentControl[databaseID] if !ok { return fmt.Errorf("%q is not found", databaseID)