How to go about optimizing a server?

Hey Facepunch, i’m hoping some of you who hold more experience than me could help me out.
I’m unable to figure out how to even start going about optimizing a Garry’s Mod server, clearing up hooks and whatnot, and i’ve attempted to request help over at ScriptFodder, but that didn’t work: https://scriptfodder.com/jobs/view/6314

So would anybody here be willing to dedicate their time to give me a quick tip/show me a tutorial as to how you could go about it.
Much appreciated.

Go grab Dbugr and go ham on the expensive hooks.

Enable LuaJIT.

Think about using a SkyLake Server CPU (List here)

Check every scripts you install.

Example : https://scriptfodder.com/scripts/view/910/description/

This addon got a fucking ass-retarded-ents.GetAll() running on a Think hook, you can actualy remove the hook, without breaking the addon.

The dev was just too stupid to save the ents he create in a table, so he has to run ents.GetAll() and check if v (the ent) == handcuff.

Going to ask… Mysqloo VS MySQL?
I figured I might aswell use MySQL since my server is huge, but then I was told it’d be counterproductive because rahter than info saving directly into the server, the server would have to contact another database for it to save files, and vice-versa when using logs.

tmysql4

To clarify, MySQLoo uses MySQL.

MySQL is the DBMS – MySQLoo is a binary module with Lua bindings to interface with the MySQL library.

Your question should really be “MySQLoo VS tmysql?” which nowadays will be answered with tmysql, as shown above.

Find all the “User Messages” you can. Replace them using the new “Net Library”.
Bonus points: Convert “Console Commands” using the Net Library as well.

The Net Library allows server->client messages, and client->server messages.
The old way was to use User Messages for server->client, and using Console Commands for client->server.

The Net Library is faster in both instances, more stable, and can transfer more information at a time.

Regardless, you should learn how to use the Net Library and use it for all and any future projects when necessary. Phasing out User Messages is ideal.