system-performance
Skill0 starsChanged 3 months agoApache-2.0View on GitHub
Find why this Linux desktop is slow — CPU, memory, disk I/O, network, or a runaway process — by measuring before forming an opinion, then tuning the bottleneck rather than a guess. Use when somebody says the machine is slow, a program is unresponsive, or something that used to be fast no longer is.
In this repository20 other files it gives its agents.
- aws-cliSkill
- cloud-deploySkill
- containersSkill
- databasesSkill
- dev-runtimesSkill
- find-skillsSkill
- incident-triageSkill
- linux-adminSkill
- log-analysisSkill
- mikrotikSkill
- network-reconSkill
- privilege-escalation-auditSkill
- remote-desktopSkill
- security-auditSkill
- shell-safetySkill
- ssh-opsSkill
- system-maintainSkill
- voip-telephonySkill
- vpn-clientSkill
- youtube-skip-adSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 17
Every reading is run_command, which is visible and returns the exit code.
- Distinctive: line 47
Before any change, say which of the four the readings point at and which reading says so.
- Very specific: line 58
Prefer the smallest change that tests the hypothesis.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Measure first, and say what you measured
"It's slow" is four different problems and they need opposite fixes. Do not tune anything until a reading points at one of them. The order below is by how often each turns out to be the answer, not by how interesting it is.
Every reading is run_command, which is visible and returns the exit code. Some
of the sharper tools (iostat, mpstat, smartctl) are not installed by
default — install_packages sysstat smartmontools when you need them, and say
you are installing something before you do.
The four readings
Load and who is eating the CPU. run_command "uptime" gives the three load
averages; compare them against run_command "nproc". A load of 8 on 8 cores is
busy; a load of 40 is a queue. Then list_processes — it is the dedicated tool
and it returns structure a ps line does not.
Memory and swap. run_command "free -h". The number that matters is
available, not free: Linux uses spare RAM for cache and giving it back is
instant. Swap in active use (si/so moving in vmstat 1 5) is the real
signal, and it makes everything slow at once, which is why a memory problem
often presents as a disk problem.
Disk. run_command "df -h" and — the one people forget —
run_command "df -i" for inodes, which fill silently and break writes on a
partition with gigabytes free. For I/O wait, the wa column of
run_command "vmstat 1 5"; high wa with low CPU means the machine is waiting
on a disk, not computing.
Network. run_command "ss -s" for socket totals,
run_command "ip -s link" for errors and drops. A slow browser on a fast
machine is usually DNS: run_command "dig +short example.com" and time it.
Name the bottleneck out loud
Before any change, say which of the four the readings point at and which reading says so. A tuning applied to the wrong one leaves the machine slow AND changed, which is worse than slow.
Changing things — the same rule as every other skill here
kill_process on something a person is using, a sysctl change, disabling a
service: state what you are about to do and why, and use ask_human when the
call is theirs rather than yours. vm.swappiness and /etc/security/limits.conf
survive reboots and are the kind of change somebody should agree to.
Prefer the smallest change that tests the hypothesis. Then re-run the same
reading and show before and after. A tuning that returned ok and did not move
the number is the failure this project ranks worst — it looks fixed and is not.
The long ones are jobs
smartctl -t long, a full find /, a big dd benchmark: job_start, then
job_wait. A wait that times out has not cancelled the work — wait again rather
than starting a second copy, which on an I/O benchmark makes the very number you
are measuring worse.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

