The basic idea of these tools is to control how much CPU is devoted to each process, and also how much Disk IO/Disk traffic is given to each process.
nice- run a program with modified scheduling priority
renice- alter priority of running processes
ionice- set or retrieve the I/O priority for a given pid or execute
a new task with a given I/O priority
iostat- report Central Processing Unit (CPU) statistics and
input/output statistics for devices and partitions
ulimit- provides control over the resources available to processes
started by the shell, on systems that allow such control
chrt- set or retrieve real-time scheduling parameters for a given
pid or execute a new task under given scheduling parameters
taskset- set or retrieve task CPU affinity for a given pid or
execute a new task under a given affinity mask