Первое, с чего надо начать - определить стадию в которой находится проблема продукта. Так, например если у вас есть немного времени, то начните с установки утилиты atop (собирает статистику). Но, если у Вас времени нет, проблема уже на лицо, то данная страница для Вас.
Помимо программы free , которая используется для проверки использования памяти, существует также ряд различных аналогичных инструментов для просмотра использования ЦП (например, top, htop, uptime, tload и т.п.).
Начнем с наиболее комплексной программы – программы top. В ней фактически отображаются процессы в Linux. Также дается динамическое представление работающей системы в режиме реального времени. Программа может отображать как сводную информацию о системе, так и список процессов и потоков, управляемых в данный момент ядром Linux.

Строка 1: top - 10:52:23 up 10 days, 6:20, 2 users, load average: 0.05, 0.03, 0.05
Строка 2: Tasks: 71 total, 1 running, 70 sleeping, 0 stopped, 0 zombie
Строка 3: %Cpu(s): 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
Данная строка показывает, как используется процессор. Если сложить все значения, данные в процентах, то в сумме мы получим 100% от ЦП. Рассмотрим эти значения по порядку:
Строка 4 and 5:
KiB Mem: 501712 total, 355316 used, 146396 free, 38412 buffers
KiB Swap: 0 total, 0 used, 0 free. 257832 cached Mem
4 и 5 строки соответственно показывают использование физической памяти (ОЗУ) и файла подкачки (такие же результаты, как и в программе free).
И последнее, что выдается (по умолчанию) при просмотре использования ЦП, – это процессы, используемые в настоящее время. Каждый из столбцов содержит различную информацию:
Программа tload. Позволяет интерактивно следить за процессом. htop похожа на программу top, но при этом htop можно прокручивать как вертикально, так и горизонтально, что позволяет увидеть все запущенные в системе процессы вместе с их полными командными строками.
Из предыдущего материала мы увидели, что нагрузка на систему присутствует во всех трех программах, представленных выше (варьируются только значения, полученные в разное время). Все три случая объединяет то, что в каждом из них мы имеем по три значения. Что же означают эти числа?
Например, возьмем значения 0.07 0.04 0.05. Их можно прочесть как:
Средняя нагрузка – это среднее число процессов, запущенных или ожидающих выполнения за 1, 5 и 15 минут. Эти значения не зависят от количества процессорных ядер, но чем больше ядер, тем больше процессов могут быть запущены одновременно. Так, например, если на устройстве с одним ядром средняя нагрузка равна 3, то устройство перегружено, в то время как для 4-ядерного компьютера это нормальная рабочая нагрузка.
Как правило, при рассмотрении производительности диска всегда отслеживаются два параметра: IOPS и дисковое пространство. Под дисковым пространством понимается количество используемого пространства, а IOPS является стандартной единицей измерения операций ввода/вывода в секунду. Простым языком, IOPS – это операции чтения/записи, выполняемых диском. На устройствах Linux есть также встроенные программы, которые отслеживают эти два параметра:
программа df.
Программа iotop. Простой монитор операций ввода/вывод, похожий на программу top.

iotop в виде столбцов отображает пропускную способность ввода/вывода, считываемую и записываемую каждым процессом/потоком в течение периода выборки. Также показывается процент времени, которое процесс/поток потратил на подкачку и ожидание ввода/вывода.
Если недостаточно информации по мониторингу диска, то углубляйтесь »
Источник: 1
p.s. советую на досуге посмотреть доклад "Логгирование и мониторинг нагрузки - Константин Андрюнин"