Thanks for the additional advice, @Darksky.
I’ve got my Pi overclocked to 2 GHz, along with a GPU overclock (not really sure if that’s helpful–I’m seeing conflicting advice on whether or not to GPU overclock, but did it more just to see what would happen).
I’m using an Ice Tower cooler, which works great. It was a bit of an experience getting it installed, as I’d never installed a cooler in a system before and the instructions weren’t written too well, nor were the pictures entirely clear (at least for me). tl;dr I ended up putting the bracket on backwards the first time, and discovered just how easily the cheap screws it comes with strip at the screwdriver interface. BUT! It’s installed and not going anywhere now, and keeps things cool even under heavy load.
For storage at the moment, I’m using this Samsung (MB-ME256GA/AM) 256GB 100MB/s (U3) MicroSDXC EVO Select: https://www.amazon.com/gp/product/B072HRDM55/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&psc=1
I had a gift card that halved the price on it, so it was a great deal. Still, even though it’s rated for ~100MB/s, in the onboard SD card slot it gets ~40MB/s according to my benchmark tool. It’s otherwise stable and I have no issues with it, but I’d definitely prefer to be using an M.2. Not just for the speed–I find SD cards to be fragile and flimsy, and I’m not a huge fan of anything with exposed contacts that have to be kept clean.
OTOH, being able to neatly eject the boot drive and plug it into my Mac to edit config files on in the event I’ve borked something is a big plus. 
Thanks for the warning about the USB interference on the M.2 drives. I am using bluetooth right now, so that’s definitely something I’ll have to keep in mind. At the same time, I’ve already got a nearly unworkable cable snarl near the pi, since it’s right next to a router and also has the wireless HDMI dongle hanging off it along with a multi-card hub thing. Hopefully I can actually get that cleaned up, instead of needing to make a bigger mess.
This is what I’m doing for overclocking, right now. It seems stable under a testing load, but I’ve had one hard freeze in XFCE. That might have been firefox consuming all available resources, though; I’ve never had a problem with the overclock while just logged in via SSH with no display connected.
As to how I’m overclocking, here’s my current config.txt. I’d appreciate any tips on tweaking it. I bumped up the GPU memory to 512M, since you indicated in another post that would be useful if using a 4K display.
I do notice that some overclocking guides use a higher overvolt. I’m wary of lighting my CPU on fire, so I’ve left it at 4 for the moment. What do you suggest for this setting?
I also know there’s a command (force_turbo=1
) to lock the CPU at its highest speed, instead of letting it ramp up/down as necessary. Is this actually useful for anything? It seems like it just requires more power and potentially stresses the CPU cores by never letting them go into a lower power state. Is the potential performance boost from eliminating the ramp-up time really that big?
$ bat /boot/config.txt
───────┬─────────────────────────────────────
│ File: /boot/config.txt
───────┼─────────────────────────────────────
1 │ # See /boot/overlays/README for all available options
2 │
3 │ initramfs initramfs-linux.img followkernel
4 │ kernel=kernel8.img
5 │ arm_64bit=1
6 │ enable_gic=1
7 │ disable_overscan=1
8 │
9 │ #enable sound
10 │ dtparam=audio=on
11 │ hdmi_drive=2
12 │
13 │ gpu_mem=512 # Set GPU memory to 512M
14 │ #enable vc4
15 │ dtoverlay=vc4-fkms-v3d
16 │ max_framebuffers=2
17 │
18 │ #Monitor Configuraiton
19 │ hdmi_enable_4kp60=1 # Enable 4K60 display
20 │
21 │ #overclock (ETA Prime @ https://www.youtube.com/watch?v=TwDbQ26_Mp8&t=398s )
22 │ over_voltage=4 # Overvolt CPU
23 │ arm_freq=2000 # Overclock to 2 GHz from 1.5 GHz
24 │ gpu_freq=750 # Overclock GPU to 600 MHz from 400 MHz
───────┴─────────────────────────────────────
I’m testing storage speed with sudo hdparm -t --direct /dev/devID
.
ExplainingComputers on YouTube shared this script to test overclock stability/cooling. I can run it without crashing and my temps never breach 49 deg C, so I’m pretty happy with the overclock so far.
1 │ #!/bin/bash
2 │
3 │ # Test Cooling System using multiple runs of sysbench.
4 │ # Check temp before each run, then output final temp.
5 │ # Source: https://www.youtube.com/watch?v=h8YQNKxlvHM (ExplainingComputers @ Youtube)
6 │
7 │ clear
8 │
9 │ #test loop
10 │ for f in {1…7}
11 │ do
12 │ vcgencmd measure_temp
13 │ sysbench --test=cpu --cpu-max-prime=25000 --num-threads=4 run >/dev/null 2>&1
14 │ done
15 │
16 │ vcgencmd measure_temp