У меня есть веб-сервер (Solaris), на котором запущены apache, mysql и nodejs. Он постоянно приближается к максимальному использованию физической памяти 1 ГБ, вот пример от virtualmin:
Webmin version 1.520
Virtualmin version 3.81.gpl GPL
Theme version 7.8
Time on server 28/Jun/2011 17:58 Kernel and CPU SunOS 5.11 on i86pc
CPU load averages 2.21 (1 min) 2.16 (5 mins) 2.07 (15 mins)
Running processes 141
Real memory 1024 MB total, 934 MB used
Virtual memory 2 GB total, 1.29 GB used
Local disk space 16.13 GB total, 2.86 GB used
а вот образец из верхней команды:
load averages: 2.44, 2.39, 2.19;
up 3+22:11:31 18:02:47 142
processes: 140 sleeping, 2 on cpu CPU
states: 76.3% idle, 16.1% user, 7.6%
kernel, 0.0% iowait, 0.0% swap
Memory: 32G phys mem, 1072M free mem,
76G total swap, 76G free swap PID
После поиска в Google "использование памяти сервера solaris" я думаю, что все будет в порядке, если мое пространство подкачки не заполнено? Но я не слишком уверен и хотел получить информацию о моей ситуации.
Хорошая операционная система всегда использует как можно больше оперативной памяти, чтобы избежать задержки доступа к диску. Нагрузка на сервер более 2 может быть поводом для беспокойства, если процессор только один, но использование ОЗУ без необходимости подкачки не является проблемой.
В Solaris не будет пакета procps, необходимого для запуска free
, поскольку в нем используются функции ядра Linux.
Для просмотра использования памяти сервера Solaris в этом вопросе StackOverflow повторяются почти все возможные методы: Способы просмотра использования памяти в Solaris
top
будет одним из ваших лучших вариантов здесь, так как вы легко сможете увидеть, кто использует память, и стоит ли вам вообще беспокоиться.
Я очень рекомендую такое программное обеспечение, как sar
или collectd
для ведения журналов использования памяти и ЦП для целей планирования емкости.
Что означает «бесплатно» в подсказке? Использование памяти всегда будет на максимальном или почти максимальном уровне в современных ОС, потому что неиспользуемая оперативная память - это пустая трата. ОС будет незаметно занимать столько памяти, сколько сочтет целесообразным, и использовать ее для буферов / кешей и прозрачно уничтожать эти кеши, когда память требуется процессам. У меня сейчас нет доступа к Solaris, но вот «бесплатный» вывод из моего Linux-сервера:
total used free shared buffers cached
Mem: 2058188 2003372 54816 0 183784 1620076
-/+ buffers/cache: 199512 1858676
Swap: 1052248 0 1052248
2 ГБ оперативной памяти, а "свободно" - всего 54,8 МБ. Но как только вы удалите буферы / кеш, для программ будет доступно 1,85 ГБ.
Я также настоятельно рекомендую использовать sar, чтобы вы все время отслеживали, что происходит. Объем выделенной памяти не имеет значения. Важно то, замедляется ли система из-за нехватки памяти. Вы в значительной степени хотите, чтобы столбец «pgscan / s» из «sar -g» всегда был равен 0. Пейджинг просто больше не является полезным способом расширения памяти.