Hi! I’m evaluating Sprites for a GitLab Runner that stays awake using a renewable Task and mostly waits for jobs. I’m trying to estimate its idle cost, but I couldn’t find the exact definition of billable RAM.
Does the RAM GB-hour meter include Linux filesystem/page cache, including both active and inactive file pages? Which counter or formula is used? For example, is it cgroup memory.current, memory.current - inactive_file, a VM-level measurement, or something else?
Some measurements from one 8 GiB Sprite:
With the runner running but idle after a small build, a roughly five-minute sample averaged 75.8 MiB runner RSS. The guest cgroup averaged 975.3 MiB in memory.current, including 911.5 MiB of file cache, of which 684.0 MiB was inactive_file.
In a later check after stopping the runner, htop 3.4.1 showed 7.07 GiB / 8 GiB, while free -h reported approximately 128 MiB used, 7.1 GiB cache, and 7.9 GiB available.
The htop number appears to come from its upstream fallback calculation: the reported free + cached + reclaimable + buffers slightly exceeded MemTotal, so htop fell back to total minus free. I’m therefore not assuming that either htop or free matches Fly’s billing meter.
Could you clarify:
Whether active file cache, inactive file cache, and reclaimable kernel memory are included in billed RAM.
Which in-Sprite counter, if any, should match the billed memory usage.
Whether there is a per-Sprite usage metric or API we can use to validate an estimate against billed RAM GB-hours.
I found the hot-storage pricing explanation, but that concerns the local NVMe cache; my question is specifically about the RAM meter.
Thanks!