The used RTX 3090 buyer’s checklist for local LLMs
Buy the 3090 for the 24 gigabytes, not for the chip underneath it. That claim only holds if the rest of the machine can deliver those gigabytes without cooking itself or browning out mid-generation, and most used-card buyers skip straight past that part.
Capacity is the reason this generation of card refuses to die on the secondhand market: it beats newer, faster cards that top out lower, and for local inference the ceiling on what you can load matters more than a few percent of extra throughput. But a listing that says 24 GB tells you nothing about PSU headroom, case airflow, or the wear on a card that may have spent its working life in a mining rig. Decide what you're actually running, chat, code completion, batch extraction, an overnight job, because each has a different tolerance for a slow p95.
the four checks before you trust it
Before any of that matters, inspect the power connector for melting or discoloration, run a sustained memory load rather than a quick smoke test, cap power in software and watch what it does to throughput, and log hotspot temperature the whole time. Use the same inputs on every run and save the launch command next to the result, because one warm sample tells you almost nothing about a card that's going to run unattended. Include a cold start if a human will ever hit one.
Here's roughly what I keep on record, plain text:
workload: one named, repeatable task
quality gate: pass / fail / abstain
latency: cold, warm, and p95
resources: memory, power, disk
verdict: keep, revert, or retest
Time to first token, prompt-processing speed, generation speed, peak memory, wall power, task success. Medians describe the normal case. The slow percentile is the one that tells you whether the card is quietly struggling under load, which matters more on a part with an unknown service history than on something fresh out of the box.
the money bleeds out through the case, not the chip
People budget for the GPU and forget that 24 GB of VRAM under sustained load needs a PSU with real headroom, a case that can actually move the heat, and a tolerance for noise you didn't need with a smaller card. Booting without a crash isn't a performance number, and a plausible-looking reply isn't a passing grade either. Pull the runtime logs and the OS-level power and thermal readings instead of trusting whatever flag you told the tool to respect, because a used 3090 with degraded thermal pads will happily accept a power limit and throttle anyway. Change one variable at a time. Otherwise you're collecting anecdotes, not running a test.
There's a maintenance tax too. A five-percent win from squeezing the power limit evaporates the next time a driver or runtime updates, so keep a short script and a handful of representative prompts you can rerun in minutes rather than building an observability stack for one workstation. For the fuller framework on sizing the rest of the box around a card like this, see hardware for local LLMs; the same headroom logic is what eventually lets you run two of these and start juggling VRAM across models instead of reloading one at a time.
Treat a used 3090 as a small server purchase, not a cheap gaming upgrade.