Категорії
Linux

Ограничиваем использование mem, cpu определённому приложению

Этот вопрос очень актуален, например, на десктопе: у меня opera время от времени начинает выедать всю доступную память и весь swap. Было принято решение ограничить её аппетиты.

Банальный ulimit не подходит, так как он ограничит для всех приложений, запускаемых от юзера. А мне нужно что бы только одно приложение и под конкретным пользователем. После недолгих гуглений, натолкнулся на cgroups.

Категорії
Linux

Лимиты в Linux

Каждый процесс имеет свои лимиты (потребление памяти, количество одновременно запущенных файлов и прочие).  При запуске процесс читает файл /etc/security/limits.conf на предмет ограничений (просматривается, пользователь/группа и ищется совпадение; если совпадений нет, то используются дефолтные параметры) и запускается с нужными лимитами.
Узнать лимиты у запущенного процесса можно так:

$ cat /proc/{PID}/limits

Категорії
FreeBSD Linux Solaris WWW

Правильная ротация логов java/tomcat’a

Всё бы хорошо, но tomcat не понимает сигналs HUPSIGUSR1 (при их получении он просто завершается). Как быть, если надо ротировать логи. Есть 2 варианта: через системный log-ротатор и через встроенные механизмы самого tomcat’a. Я рассмотрю первый вариант, так как в нём больше возможностей в плане ротации файлов. Но тут есть нюанс: ротировать будем с помощью метода copytruncate, то есть нужный нам лог сначала копируется, а потом урезается до нулевой длинны, тем самым не нарушая последующей записи в исходный лог.

Категорії
Linux Security

Защита от Syn Flood’a

Тестовый стенд: Centos 6.2 (kernel 2.6.32-220.4.2.el6.x86_64), apache+php+mysql

Имеем очень много соединений с состоянием SYN_RECV (syn flood):

$netstat -ntu
...
tcp 0 0 XX.XX.XX.XX:80 202.51.102.34:40700 SYN_RECV
tcp 0 0 XX.XX.XX.XX:80 190.225.143.29:40123 SYN_RECV
tcp 0 0 XX.XX.XX.XX:80 101.255.71.7:38725 SYN_RECV
tcp 0 0 XX.XX.XX.XX:80 122.226.122.201:48952 SYN_RECV
tcp 0 0 XX.XX.XX.XX:80 186.91.63.97:44343 SYN_RECV
tcp 0 0 XX.XX.XX.XX:80 109.230.156.97:56149 SYN_RECV
...

Как с ними бороться?

Категорії
FreeBSD Linux

Перенаправление вывода консоли FreeBSD в VirtualBox’e

Появилась задача протестировать одну штуку через VirtualBox. Но вот не задача: нужное мне сообщение пишет ядро после того как перегружаю виртуалку. Я, конечно не успеваю его прочитать. Вот если бы можно было куда-то перенаправить вывод консоли виртуалки и оттуда уже прочитать.

Можно конечно воспользоваться ПО, которое пишет видео с экрана, но и тут меня ждала неудача: слишком быстро промелькнуло сообщение и на видео оно не видно.

Решение подсказали в рассылке FreeBSD. Суть следующая: будем дублировать вывод так же на com-порт, а в качестве com-порта пропишем путь к сокету, который создадим на хост-машине (та, собственно где запущен VirtualBox).

Категорії
FreeBSD Linux

IPSec: FreeBSD <--> Linux

Тестовый стенд: FreeBSD 9.2, Debian Linux 6 (kernel 3.2), ipsec transport mode with preshared keys

Настройка IPSec состоит из 2-х частей: настройка IPSec’a и непосредственно настройка обмена ключами (ike).

Имеем самую обычную схему FreeBSD (10.5.5.98) <—> (10.5.5.78) Linux

В данной статье подразумевается настройка полностью с нуля.

Категорії
Linux OpenBSD

IPSec: OpenBSD <--> Linux

Тестовый стенд: OpenBSD 5.4, Debian Linux 6 (kernel 3.2), ipsec transport mode with preshared keys

Настройка IPSec состоит из 2-х частей: настройка IPSec’a и непосредственно настройка обмена ключами (ike).

Имеем самую обычную схему OpenBSD (10.5.5.76) <—> (10.5.5.78) Linux

В данной статье подразумевается настройка полностью с нуля.

Категорії
Linux Solaris

IPSec: Solaris <--> Linux

Тестовый стенд: Solaris 11.1, Debian Linux 6 (kernel 3.2), ipsec transport mode with preshared keys

Настройка IPSec состоит из 2-х частей: настройка IPSec’a и непосредственно настройка обмена ключами (ike).

Имеем самую обычную схему Solaris (10.5.5.219) <—> (10.5.5.78) Linux

В данной статье подразумевается настройка полностью с нуля.

Категорії
FreeBSD Linux

[zfs] Ускорение работы

По дефолту zfs показывает не большую скорость работы, но это можно исправить. Ограничим или отключим такие параметры:

– vm.kmem_size, vm.kmem_size_max – участок памяти используемый ядром для выделения памяти, например, при использовании malloc. Не больше 1/3 оперативной памяти
– vfs.zfs.arc_max – отвечает за размер памяти выделяемый под ARC ( хранятся кешированные данные пулов). Не больше 1/3 оперативной памяти
– vfs.zfs.prefetch_disablezfs пытается угадать, какой блок будет считан в следующий момент. Можно попробовать отключить его
– vfs.zfs.cache_flush_disable – отключение синхронизации данных между ОС и дисками
– vfs.zfs.vdev.max_pending=”6″ – выбрасываение диска из пула после таймаута в 6 секунд

Категорії
FreeBSD Linux Solaris

Туннель (без IPSec) Solaris <---> Linux, FreeBSD <---> Linux

Схема подключения:

Solaris (net 192.168.66.0/24) 1.1.1.1 <—(10.65.0.1 <—> 10.65.0.2)—> 2.2.2.2 (net 192.168.88.0/24) Linux

FreeBSD (net 192.168.77.0/24) 3.3.3.3 <—(10.77.0.1 <—> 10.77.0.2) —> 2.2.2.2 (net 192.168.88.0/24) Linux

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP