The 8 GB Lab Book · Chapter 5
System occupancy by subtraction
- Board
- Jetson Orin Nano Super
- Mode
- 15W
- Setup
- desktop up
- Summary
- 43 services run at idle with the desktop up. The 'N' processes in the top 15 by RSS add up to 71 MB. I expected 0.5 to 1 GB.
What I expected
These are my guesses from before I read the process table.
- Running services: < 25 on a robot
- RSS of 'N' processes in top 15: ~0.5-1 GB
The theory
Subtraction as design
Before you change the model size or the quantizationStoring a model's weights, and sometimes its activations, in fewer bits, trading a little accuracy for less memory and less memory traffic., look at what already runs on the board. Ask one question about each item: does this item have a job on a walking robot?
The book says that the desktop is the first gigabyte that you gain. The measurement found much less. The 'N' processes in the top 15 use only 71 MB of RSSResident set size: the pages of a process's own memory that are in RAM right now, as ps and top count them; GPU allocations made through the driver are not included..
THE IMAGE RECIPE, one page
The boot target is multi-user.target, not graphical. The GUI is a bench tool. It is not a robot part.
Mask these items: gdm, snapd, cups, avahi-daemon, ModemManager, whoopsie, kerneloops, fwupd, packagekit and tracker-miner-fs.
Purge these items: the gnome desktop metapackages, evolution-data-server, ubuntu-report and the snap runtime.
Keep these items: nvidia-*, libcudnn, tensorrt, GStreamerA media pipeline framework in which elements such as a camera source, a converter and a sink are chained so frames stream from one to the next.+nvvidconv, python3, ssh and network-manager.
THE ARITHMETIC: what subtraction actually buys
The sum of the 'N' rows in the top 15 = 71 MB of RSS.
43 services run today. The target is fewer than 25. I must remove at least 19.
A removed process cannot wake up and take a core during a timing test.
The setup
bash ~/day05_occupancy.sh
cat ~/day05/ps_top.txt | head -20
wc -l ~/day05/services_running.txtThe measurement
| What | Expected | Measured | Note |
|---|---|---|---|
| Idle, desktop up (tegrastats) | - | RAM 1400/7620MB SWAP 325/3810MB | stock image |
| Running services | < 25 on a robot | 43 | systemctl --state=running |
| RSS of 'N' processes in top 15 | ~0.5-1 GB | 71 MB | sum of RSS, not the whole cost |
| MemAvailable | - | 6209320 kB | /proc/meminfo |
| Daemons: docker: active snapd: inactive gdm: active cups: inactive | - | see note | docker/snapd/gdm/cups state |
| gnome-shell | - | 29 MB N | desktop |
| dockerd | - | 15 MB N | container daemon, unless used |
| containerd | - | 9 MB N | container daemon |
| polkitd | - | 7 MB ? | gnome needs it; robot does not |
| systemd | - | 6 MB Y | init |
| NetworkManager | - | 5 MB Y | network |
| systemd-journal | - | 4 MB Y | init |
| gnome-session-b | - | 3 MB N | desktop |

The allowed set, walk day
- Gait loop(own core, RT)
- Camera(stays in NVMM)
- One SLMserver
- tegrastats +ssh + net
services running today
- running now
- 43
- robot target
- < 25
MemAvailable at idle with the desktop on is 6,209,320 kB. The daemons today are: docker active, snapd inactive, gdm active, cups inactive.
TOP PROCESSES BY RSS -- allowed on a robot?
Where it broke
I expected the desktop to be the first gigabyte. The top 15 processes marked N sum to 71 MB of RSS. That is a seventh of my low guess. The 43 running services are above my target of 25 by 19. The count is a measurement; the cost of the desktop is not, because RSS leaves out the GPU buffers of gnome-shell and Xorg, and I did not boot headless to subtract.
My notes from Day 5
Written by hand on 2026-09-05, before this chapter was typed. These are my original notes from that day. Where the chapter corrects them, the chapter is current.


Summary
- In the top 15 by RSS, the 'N' processes use 71 MB. I expected 0.5 to 1 GB.
- "Headless" is not a general idea. It is a boot target: multi-user.target.
- The allowed set is short, and you can memorize it. If an item is on the board and is not in the list, it is a bug.
Sources
These sources are not mine. Measured numbers came off my own board; specs, estimates and paper figures are labeled as such.
- NVIDIA / partner writeups on maximizing Jetson memory (disable display carveouts, unused services). jetson-clocks + nvpmodel docs
- Standard embedded practice: production image ≠ devkit image