Рассмотрим использование 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
четверг, 22 июля 2010 г.
Использование ulimit для контроля ресурсов. (linux limit kernel)
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 Кб).
вторник, 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/
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/
четверг, 29 апреля 2010 г.
Копирование файловых систем гостевых машин в XEN на другую машину
Не следует использовать rsync для копирования файловой системы с одного компьютера на другой. Нужно использовать dd:
# dd if=/dev/vgxen/lvol0 | ssh dd of=/dev/vgxen/lvol0
# dd if=/dev/vgxen/lvol0 | ssh
Ярлыки:
дисковые разделы,
Linux,
XEN
Network Latency имеет отрицательное значение в гостевой системе Windows XEN при CPU>1
Латентность сети может иметь отрицательные значения в гостевой системе Windows XEN при установленном количестве процессоров больше 1.
Например, пинг с данной машины до удалённого хоста может иметь такой вид:
>ping 192.168.2.1
Reply from 192.168.2.1: bytes=32 time=-7639ms TTL=64
Для решения данной проблемы необходимо добавить параметр /usepmtimer в C:\boot.ini в гостевой ОС Windows и перегрузить её.
Данная проблема описана в Microsoft Support article number 895980 - http://support.microsoft.com/kb/895980.
Например, пинг с данной машины до удалённого хоста может иметь такой вид:
>ping 192.168.2.1
Reply from 192.168.2.1: bytes=32 time=-7639ms TTL=64
Для решения данной проблемы необходимо добавить параметр /usepmtimer в C:\boot.ini в гостевой ОС Windows и перегрузить её.
Данная проблема описана в Microsoft Support article number 895980 - http://support.microsoft.com/kb/895980.
Настройка времени в гостевых паравиртуализированных системах XEN (или корректировка времени в гостевых системах).
В ситуации когдя время в гостевых паравиртуализированных машинах рассинхронизируется от хостовой машины, выставить его вручную или через службу NTP не получается. Т.е. время управляется гипервизором XEN для всех гостевых машин.
Можно выставить собственное управление часами в гостевой машине. Для этого нужно выставить параметр xen.independent_wallclock в 1 в /etc/sysctl.conf
Пример:
xen.independent_wallclock = 1
Затем выполнить
#echo 1 > /proc/sys/xen/independent_wallclock
Теперь в гостевой системе можно выставлять автономное время вручную или через NTP
(Данный механизм не подходит для полной виртуализации гостевых систем)
Можно выставить собственное управление часами в гостевой машине. Для этого нужно выставить параметр xen.independent_wallclock в 1 в /etc/sysctl.conf
Пример:
xen.independent_wallclock = 1
Затем выполнить
#echo 1 > /proc/sys/xen/independent_wallclock
Теперь в гостевой системе можно выставлять автономное время вручную или через NTP
(Данный механизм не подходит для полной виртуализации гостевых систем)
среда, 31 марта 2010 г.
Перенос LOBSEGMENT и LOBINDEX в другой Tablespace.
Данный скрипт генерирует код, который нужно выполнить для переноса LOBSEGMENT и LOBINDEX в другой Tablespace.
DECLARE
V_OLD_TABLESPACE VARCHAR2(100):='USERS';
V_NEW_TABLESPACE VARCHAR2(100):='TEMP';
BEGIN
FOR XX IN (
SELECT L.TABLE_NAME, L.COLUMN_NAME, L.INDEX_NAME
FROM USER_LOBS L, USER_SEGMENTS S
WHERE (S.SEGMENT_NAME=L.SEGMENT_NAME) AND (S.TABLESPACE_NAME=V_OLD_TABLESPACE)) LOOP
DBMS_OUTPUT.PUT_LINE('ALTER TABLE '||XX.TABLE_NAME||' MOVE LOB('||XX.COLUMN_NAME||')
STORE AS (TABLESPACE '||V_NEW_TABLESPACE||' INDEX '||XX.INDEX_NAME||'(TABLESPACE '||
V_NEW_TABLESPACE||' STORAGE (MAXEXTENTS UNLIMITED)));');
END LOOP;
END;
Пример результата работы данного скрипта:ALTER TABLE QUERY_TBL MOVE LOB(QUERY_TEXT) STORE ASПосле этого сделать rebuild индексов (в данном случае, в таблицах QUERY_TBL, QUERY_PARM_TBL,
(TABLESPACE TEST INDEX SYS_IL0000049532C00011$(TABLESPACE TEST
STORAGE (MAXEXTENTS UNLIMITED)));
ALTER TABLE QUERY_PARM_TBL MOVE LOB(QUERY_PARMS) STORE AS
(TABLESPACE TEST INDEX SYS_IL0000049553C00003$(TABLESPACE TEST
STORAGE (MAXEXTENTS UNLIMITED)));
ALTER TABLE OFS_ITEMS MOVE LOB(DATA) STORE AS (TABLESPACE TEST
INDEX SYS_IL0000177335C00011$(TABLESPACE TEST
STORAGE (MAXEXTENTS UNLIMITED)));
OFS_ITEMS).
Найдено на просторах www.sql.ru
Подписаться на:
Сообщения (Atom)