I don't see anyone else actually telling you how to figure out if you're being DoSed, so I'll start:
Check your logs. Look at what process is eating your CPU in htop and then look at the logs for that process. If it's a web application, that means the error and access logs for it. If you see a flood of requests to a single URL, or some other suspicious pattern in the log, then you can try blocking the IPs associated with them temporarily and see if it alleviates the load. Repeat until the load goes down.
If your application uses a database, check your database logs too. IIRC postgres logs queries that take longer than 5 seconds by default, which can make it easy to spot a slow query especially during a time of high load.
I don't think DNS amplification attacks over UDP are likely to be a problem as I think most cloud providers filter traffic with forged src addresses (correct me if I'm wrong). You can also try blocking all inbound UDP traffic if you suspect a UDP flood but this will likely break DNS lookups for you temporarily. (your machine should not have any open UDP ports in any case though if you're just running Lemmy).
If you want to go next level, you can use "perf" to generate a system-wide profile and flamegraph which will show you where you're burning CPU cycles. This can be extremely useful for troubleshooting performance or optimizing applications. (you'll find that even ipfilters takes CPU power, which is why most DDoS protection happens on dedicated hardware upstream)