From b4b5d20ddcfdb584d85dc3ccf20e8759f38f3672 Mon Sep 17 00:00:00 2001 From: John Spray Date: Fri, 22 Dec 2023 15:31:57 +0000 Subject: [PATCH] DNM control_plane: pinning for John's workstation --- control_plane/src/endpoint.rs | 7 +++++-- control_plane/src/pageserver.rs | 13 +++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/control_plane/src/endpoint.rs b/control_plane/src/endpoint.rs index 9485f91275..858f94db82 100644 --- a/control_plane/src/endpoint.rs +++ b/control_plane/src/endpoint.rs @@ -545,8 +545,11 @@ impl Endpoint { // Launch compute_ctl println!("Starting postgres node at '{}'", self.connstr()); - let mut cmd = Command::new(self.env.neon_distrib_dir.join("compute_ctl")); - cmd.args(["--http-port", &self.http_address.port().to_string()]) + let mut cmd = Command::new("/usr/bin/taskset"); + + cmd.args(["-c".to_string(), "8-11".to_string()]) + .args([self.env.neon_distrib_dir.join("compute_ctl")]) + .args(["--http-port", &self.http_address.port().to_string()]) .args(["--pgdata", self.pgdata().to_str().unwrap()]) .args(["--connstr", &self.connstr()]) .args([ diff --git a/control_plane/src/pageserver.rs b/control_plane/src/pageserver.rs index e076b27a48..c4cee2fe3f 100644 --- a/control_plane/src/pageserver.rs +++ b/control_plane/src/pageserver.rs @@ -13,6 +13,7 @@ use std::io::Write; use std::num::NonZeroU64; use std::path::PathBuf; use std::process::{Child, Command}; +use std::str::FromStr; use std::time::Duration; use anyhow::{bail, Context}; @@ -219,11 +220,19 @@ impl PageServerNode { if update_config { args.push(Cow::Borrowed("--update-config")); } + + let mut taskset_args = vec![ + "-c".to_string(), + format!("{}", self.conf.id.0 - 1), + self.env.pageserver_bin().to_string_lossy().into(), + ]; + taskset_args.extend(args.into_iter().map(|a| a.to_string())); + background_process::start_process( "pageserver", &datadir, - &self.env.pageserver_bin(), - args.iter().map(Cow::as_ref), + &PathBuf::from_str("/usr/bin/taskset").unwrap(), + taskset_args, self.pageserver_env_variables()?, background_process::InitialPidFile::Expect(self.pid_file()), || async {