четверг, 22 июля 2010 г.

Использование ulimit для контроля ресурсов. (linux limit kernel)

Рассмотрим использование ulimit на примере ограничений пользователя worker

Итак, добавим в конец /etc/profile:

if [ "$USER" = "worker" ]; then

ulimit -c 0 # Запрещаем создавать core файлы
ulimit -d 48000 # Ограничиваем максимальный размер сегмента данных в 48 MB
ulimit -s 8192 # Ограничиваем максимальный размер стэка в 8 MB
ulimit -m 48000 # Ограничиваем максимальный размер резидентной части процесса (находящейся в ОЗУ) в 48 MB
ulimit -u 64 # Ограничиваем максимальное число запущенных этим пользователем процессов.
ulimit -n 128 # Ограничиваем максимальное число открытых файлов.
ulimit -f 100000 # Ограничиваем максимальный размер создаваемого файла в 100 MB
ulimit -v 100000 # Ограничиваем максимальный размер используемой виртуальной памяти в 100 MB
fi

Для просмотра текущих установок нужно набрать ulimit -a


Либо можно сделать так: например, ограничения на кол-во процессов делается с помощью PAM:
/etc/security/limits.conf
+
"session required /lib/security/pam_limits.so"
в /etc/pam.d/login
Может попробовать и тебе так сделать (/etc/security/limits.conf):
* soft nproc 2048




Источник http://opennet.ru/base/sys/ulimit_mc.txt.html

Apache. Ограничение ресурсов.

Следующие опции могут употребляться для ограничения возможности DoS-атак против Web-сервера:

  • MaxClients <число> - задает максимальное число клиентов, которые могут работать с сервером вместе. Иногда запросов настолько много, что у компьютера не хватает памяти для загрузки дополнительных копий Web-сервера для обслуживания запросов клиентов. Эта директива дает возможность ограничить максимальное число клиентов. Значение по умолчанию 150, тоже рекомендуется применять или это значение, или значение из диапазона 100-200. Если ограничение будет превышено, новые клиенты получат сообщение Connection Refused.
  • RLimitCPU <мягкий> [жесткий] - устанавливает лимит на употребление процессорного времени. Значения лимита задаются в секундах. Разрешается применение значения max, что означает максимальную загрузку процессора.
  • RLimitMEM <мягкий> [жесткий] - устанавливает лимит на применение сервером памяти, в байтах.
  • RLimitNPROC <мягкий> [жесткий] - задает ограничение на количество порожденных сервером процессов.
  • LimitRequestBody - задает максимально допустимый размер HTTP-запроса. Надо применять любое значение: от 0 (неограниченный) до 2.147.483.647 (2. Гб). Если это значение превышено, клиенту будет возвращено сообщение об ошибке. Нужно помнить, что если используются CGI-скрипты для загрузки файлов на сервер, то размер запроса может достигать несколько мегабайтов.
  • LimitRequestFields - максимальное число полей заголовка HTTP-запроса. Допустимыми являются значения от 0 (не ограничено) до 32767.
  • LimitRequestFieldSize - максимальный размер поля заголовка запроса, в байтах. Допустимыми являются значения от 0 (не ограничено) до 8190 (около 8 Кб).
  • LimitRequestLine - максимальный размер строки HTTP-запроса. Не надо устанавливать слишком маленькое значение, так как тогда перестанут работать многие CGI-скрипты, использующие метод GET. Допустимыми являются значения от 0 (не ограничено) до 8190 (около 8 Кб).
Источник http://suvan.ru/page/apache-sokrytie-versii.html

вторник, 20 июля 2010 г.

linux, мониторинг, производительность

hdparm -t -T /dev/sda1 – дисковая производительность
stat -f / – количество занятых/свободных блоков/инодов
iostat -m -x sda 2 6 – смотрим загрузку указанного диска (пакет sysstat)
vmstat -S M 2 50 – смотрим статистику/потребление по ресурсам
free -m (колонка cache – память занятая под кэш ФС)
cat /proc/meminfo
cat /proc/cpuinfo
cat /proc/interrupts – кто генерит больше прерываний
cat /proc/net/dev – передано через интерфейс в байтах
cat /proc/sys/fs/file-max – макс. допустимое количество откр. файлов (sysctl -w fs.file-max=”16384″)
cat /proc/sys/fs/file-nr
nload – графический мониторинг трафика
fdisk -l – информация о дисках и разделах
top, 1 – распределение нагрузки по ядрам
netstat -s # статистика по сети. Например, netstat -s |grep establish текущее количество установленных соединений
ethtool eth0 # информация о режимах работы поддерживаемых сетевой картой, о текущих режимах и параметрах

Взято здесь http://unix-notes.ru/2008/12/09/linux-monitoring-proizvoditelnost/