* Run perf tests only on buildjet machine * - Set chrome process priority to maximum to stabilise the run data * Update index.js * Update perf.js * Update index.js * - Move around args * - Add --no-sandbox option to initial setup * -We don't need sudo on the main script, we can use sudo in node scripts to set process priority * - Some tweaks to the perf scripts. * - Remove no-sandbox option in puppeteer launch * - Remove sudo at unnecessary places * - Add code to force grabage collection in chrome * Update logins and some cleanup * Remove unsed import Co-authored-by: Satish Gandham <satish@appsmith.com>
54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
const cp = require("child_process");
|
|
|
|
exports.cleanTheHost = async () => {
|
|
await cp.exec("pidof chrome", (error, stdout, stderr) => {
|
|
if (error) {
|
|
console.log(`error: ${error.message}`);
|
|
return;
|
|
}
|
|
if (stderr) {
|
|
console.log(`stderr: ${stderr}`);
|
|
return;
|
|
}
|
|
console.log(`Killing chrome processes: ${stdout}`);
|
|
stdout.split(" ").forEach((PID) => {
|
|
cp.exec(`sudo kill -9 ${PID}`, (error, stdout, stder) => {
|
|
if (error) {
|
|
console.log(`Kill error: ${error.message}`);
|
|
return;
|
|
}
|
|
if (stderr) {
|
|
console.log(`Kill stderr: ${stderr}`);
|
|
return;
|
|
}
|
|
if (stdout) {
|
|
console.log(`Kill stdout: ${stdout}`);
|
|
return;
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
// Clear OS caches
|
|
await cp.exec("sync; echo 3 | sudo tee /proc/sys/vm/drop_caches");
|
|
};
|
|
|
|
exports.setChromeProcessPriority = async () => {
|
|
await cp.exec("pidof chrome", (error, stdout, stderr) => {
|
|
if (error) {
|
|
console.log(`error: ${error.message}`);
|
|
return;
|
|
}
|
|
if (stderr) {
|
|
console.log(`stderr: ${stderr}`);
|
|
return;
|
|
}
|
|
console.log(`stdout: setting priority: ${stdout}`);
|
|
|
|
// Set priority of chrome processes to maximum
|
|
stdout.split(" ").forEach((PID) => {
|
|
cp.execSync(`sudo renice -20 ${PID}`);
|
|
});
|
|
});
|
|
};
|