diff --git a/loadgen/_diag_status.lua b/loadgen/_diag_status.lua index a3c7cf9..6deaec0 100644 --- a/loadgen/_diag_status.lua +++ b/loadgen/_diag_status.lua @@ -19,11 +19,13 @@ -- Mostly 503 -> store-call is erroring (store actor down). Mostly 2xx at low -- load but the full bench shows non-2xx -> it's load/scale dependent. +-- Locate common.lua next to this script regardless of cwd (see s2 for why). +package.path = (debug.getinfo(1, "S").source:match("^@(.*[/\\])") or "./") .. "?.lua;" .. package.path local common = require("common") wrk.headers = common.headers wrk.headers["Content-Type"] = "application/json" -math.randomseed(os.time() + os.getpid()) +math.randomseed(os.time() + (os.getpid and os.getpid() or 0)) local body = [[{"name":"diag","email":"diag@example.test"}]] diff --git a/loadgen/s2_user_get.lua b/loadgen/s2_user_get.lua index d877f90..25438a2 100644 --- a/loadgen/s2_user_get.lua +++ b/loadgen/s2_user_get.lua @@ -1,11 +1,16 @@ -- S2: single-route GET with full middleware (logger + request_id + auth). -- :id is spread across 10_000 values to defeat per-id caching. +-- Locate common.lua next to this script regardless of cwd. wrk runs with cwd +-- at the repo root, where 'common' is not on package.path; without this the +-- require fails and wrk silently falls back to its default request (GET / with +-- no auth -> 100% non-2xx). +package.path = (debug.getinfo(1, "S").source:match("^@(.*[/\\])") or "./") .. "?.lua;" .. package.path local common = require("common") wrk.method = "GET" wrk.headers = common.headers -math.randomseed(os.time() + os.getpid()) +math.randomseed(os.time() + (os.getpid and os.getpid() or 0)) request = function() local id = math.random(1, 10000) diff --git a/loadgen/s3_mixed.lua b/loadgen/s3_mixed.lua index 19546ec..6ace24a 100644 --- a/loadgen/s3_mixed.lua +++ b/loadgen/s3_mixed.lua @@ -3,11 +3,13 @@ -- contention on axum, and gen_server message-pass on cowboy without -- making writes the bottleneck. +-- Locate common.lua next to this script regardless of cwd (see s2 for why). +package.path = (debug.getinfo(1, "S").source:match("^@(.*[/\\])") or "./") .. "?.lua;" .. package.path local common = require("common") wrk.headers = common.headers wrk.headers["Content-Type"] = "application/json" -math.randomseed(os.time() + os.getpid()) +math.randomseed(os.time() + (os.getpid and os.getpid() or 0)) -- A small pool of pre-built JSON bodies. Building one fresh per request -- in Lua would taint the bench with Lua's GC overhead.