mirror of
https://github.com/wassname/ray.git
synced 2026-08-20 12:40:44 +08:00
Allow the node manager port and object manager port to be set through… (#3130)
* Allow the node manager port and object manager port to be set through ray start. * Linting * Fix Java test * Address comments.
This commit is contained in:
committed by
Philipp Moritz
parent
a404401dc6
commit
fd854ff090
@@ -29,6 +29,10 @@
|
||||
namespace ray {
|
||||
|
||||
struct ObjectManagerConfig {
|
||||
/// The port that the object manager should use to listen for connections
|
||||
/// from other object managers. If this is 0, the object manager will choose
|
||||
/// its own port.
|
||||
int object_manager_port;
|
||||
/// The time in milliseconds to wait before retrying a pull
|
||||
/// that fails due to client id lookup.
|
||||
uint pull_timeout_ms;
|
||||
|
||||
+14
-10
@@ -20,19 +20,21 @@ int main(int argc, char *argv[]) {
|
||||
ray::RayLogLevel::INFO,
|
||||
/*log_dir=*/"");
|
||||
ray::RayLog::InstallFailureSignalHandler();
|
||||
RAY_CHECK(argc == 11 || argc == 12);
|
||||
RAY_CHECK(argc == 13 || argc == 14);
|
||||
|
||||
const std::string raylet_socket_name = std::string(argv[1]);
|
||||
const std::string store_socket_name = std::string(argv[2]);
|
||||
const std::string node_ip_address = std::string(argv[3]);
|
||||
const std::string redis_address = std::string(argv[4]);
|
||||
int redis_port = std::stoi(argv[5]);
|
||||
int num_initial_workers = std::stoi(argv[6]);
|
||||
int maximum_startup_concurrency = std::stoi(argv[7]);
|
||||
const std::string static_resource_list = std::string(argv[8]);
|
||||
const std::string python_worker_command = std::string(argv[9]);
|
||||
const std::string java_worker_command = std::string(argv[10]);
|
||||
const std::string redis_password = (argc == 12 ? std::string(argv[11]) : "");
|
||||
int object_manager_port = std::stoi(argv[3]);
|
||||
int node_manager_port = std::stoi(argv[4]);
|
||||
const std::string node_ip_address = std::string(argv[5]);
|
||||
const std::string redis_address = std::string(argv[6]);
|
||||
int redis_port = std::stoi(argv[7]);
|
||||
int num_initial_workers = std::stoi(argv[8]);
|
||||
int maximum_startup_concurrency = std::stoi(argv[9]);
|
||||
const std::string static_resource_list = std::string(argv[10]);
|
||||
const std::string python_worker_command = std::string(argv[11]);
|
||||
const std::string java_worker_command = std::string(argv[12]);
|
||||
const std::string redis_password = (argc == 14 ? std::string(argv[13]) : "");
|
||||
|
||||
// Configuration for the node manager.
|
||||
ray::raylet::NodeManagerConfig node_manager_config;
|
||||
@@ -51,6 +53,7 @@ int main(int argc, char *argv[]) {
|
||||
ray::raylet::ResourceSet(std::move(static_resource_conf));
|
||||
RAY_LOG(DEBUG) << "Starting raylet with static resource configuration: "
|
||||
<< node_manager_config.resource_config.ToString();
|
||||
node_manager_config.node_manager_port = node_manager_port;
|
||||
node_manager_config.num_initial_workers = num_initial_workers;
|
||||
node_manager_config.num_workers_per_process =
|
||||
RayConfig::instance().num_workers_per_process();
|
||||
@@ -76,6 +79,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
// Configuration for the object manager.
|
||||
ray::ObjectManagerConfig object_manager_config;
|
||||
object_manager_config.object_manager_port = object_manager_port;
|
||||
object_manager_config.store_socket_name = store_socket_name;
|
||||
object_manager_config.pull_timeout_ms =
|
||||
RayConfig::instance().object_manager_pull_timeout_ms();
|
||||
|
||||
@@ -23,15 +23,23 @@ namespace ray {
|
||||
namespace raylet {
|
||||
|
||||
struct NodeManagerConfig {
|
||||
/// The node's resource configuration.
|
||||
ResourceSet resource_config;
|
||||
/// The port to use for listening to incoming connections. If this is 0 then
|
||||
/// the node manager will choose its own port.
|
||||
int node_manager_port;
|
||||
/// The initial number of workers to create.
|
||||
int num_initial_workers;
|
||||
/// The number of workers per process.
|
||||
int num_workers_per_process;
|
||||
/// The maximum number of workers that can be started concurrently by a
|
||||
/// worker pool.
|
||||
int maximum_startup_concurrency;
|
||||
/// The commands used to start the worker process, grouped by language.
|
||||
std::unordered_map<Language, std::vector<std::string>> worker_commands;
|
||||
/// The time between heartbeats in milliseconds.
|
||||
uint64_t heartbeat_period_ms;
|
||||
/// the maximum lineage size.
|
||||
uint64_t max_lineage_size;
|
||||
/// The store socket name.
|
||||
std::string store_socket_name;
|
||||
|
||||
@@ -24,10 +24,13 @@ Raylet::Raylet(boost::asio::io_service &main_service, const std::string &socket_
|
||||
acceptor_(main_service, boost::asio::local::stream_protocol::endpoint(socket_name)),
|
||||
socket_(main_service),
|
||||
object_manager_acceptor_(
|
||||
main_service, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), 0)),
|
||||
main_service,
|
||||
boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(),
|
||||
object_manager_config.object_manager_port)),
|
||||
object_manager_socket_(main_service),
|
||||
node_manager_acceptor_(
|
||||
main_service, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), 0)),
|
||||
node_manager_acceptor_(main_service, boost::asio::ip::tcp::endpoint(
|
||||
boost::asio::ip::tcp::v4(),
|
||||
node_manager_config.node_manager_port)),
|
||||
node_manager_socket_(main_service) {
|
||||
// Start listening for clients.
|
||||
DoAccept();
|
||||
|
||||
Reference in New Issue
Block a user