v0.7.0

資源上限

最後更新

每次執行函式時,HakoRun 從 CPU、記憶體、請求大小與時間四個面向設限。

上限一覽

上限 預設 設定 超過時 平台
CPU 1 核(CPUQuota=100%) MAX_CPUS 被 cgroup 節流 Linux
記憶體 128M,swap 0 MAX_MEMORY 被 cgroup OOM 終止 Linux
請求 body 256 KiB CODE_MAX_SIZE HTTP 400 全部
執行時間 30 秒 + 5 秒 TIMEOUT_SCRIPT 終止行程;非串流回 500,串流送 error 全部

systemd Slice

啟動時 sandbox.NewSlice() 寫入 ~/.config/systemd/user/hakorun.slice,再執行 systemctl --user daemon-reload 與 start:

[Unit]
Description=FaaS Sandbox

[Slice]
CPUQuota=100%
MemoryMax=128M
MemorySwapMax=0

每個沙箱行程以 systemd-run --scope --slice=hakorun.slice 加入此 slice,因此上限是所有同時執行的函式共用,不是每個函式各自一份。建立 slice 失敗只記錄警告,服務仍會啟動,此時沒有 CPU/記憶體上限。

時間與大小

相關頁面

EN