Архив за Май, 2010

IceCast: переполнение памяти

28 Май 2010

Я на своем хостинге предоставляю услугу трансляции Интернет-радио. Основа: сервер IceCast 2.3.2 под FreeBSD. Заметил за IceCast’oм одну неприятную вещь — долго работающий процесс айскаста начинает пожирать память в больших объемах. Причем забивая оперативную память, начинает кушать своп, пока оной не заканчивается. Тем более процессы айскаста у меня висят десятками(отдельный процесс на отдельный порт). Разработчики, вроде бы, обещают исправить пожирание памяти в версии 2.3.3, но на сайте пока доступен релиз 2.3.2 за 2008 год. В интернетах предлагают поставить icecast trunk из Subversion репозитория, где эту проблему уже пофиксили.

Снапшоты находятся здесь. Я качнул последний. Компиляция и установка стандартная:

# ./configure
# make
# make install

После инсталляции перезапустил все процессы айскаста и понаблюдал за ними. Вроде бы, проблема решилась. Кушает айскаст теперь не более 30 мб памяти на процесс.

Как проверить пустая директория или нет в shell скрипте

27 Май 2010

Писал скрипты автоматизации для сервера и долго страдал в раздумьях, как определить — пустая директория или нет. Стандартной команды для определения нет. В интернетах нашел самый простой способ:

#!/bin/bash
DIR="/path/to/directory"
if [[ -d "$DIR" && "$(ls -A $DIR)"  ]]
then
echo "Каталог присутствует и НЕ пустой"
else
echo "Каталог пустой или отсутствует"
fi

Добавил себе в заметки, думаю, еще не раз пригодится.

Новый предел в 2ТБ

23 Май 2010

Жесткие диски потихоньку подобрались к следующему пределу объема — 2 терабайта. Сначала для HDD был предел 8 Гб, потом 137 Гб. 8ГБ преодолели легко — забыв о CHS перейдя LBA, 137 ГБ — из-за 28-битной адресации секторов на уровне контроллера диска тоже преодолели без особых проблем — ввели 42 бита в контроллерах. А вот с пределом 2.1ТБ будет проблема у тех, у кого до сих пор 32-разрядные системы — в них не поддерживается LongLBA, который поможет увидеть (и управлять) разделами более 2ТБ на винте.  32-битный стандарт адресации секторов внутри таблицы разделов мешает сделать том более 2Тб. А загрузиться с него вообще не получится.

Seagate,  подтвердили эту проблему, которые уже кстати готовятся к выпуску 3ТБ винтов.

Фотожабы на Януковича и венок

21 Май 2010

Здесь подборочка фотожаб на знаменитое видео =) Очередной раз поржал…

Памятка команд

21 Май 2010

netstat -an|grep tcp | wc -l #кол-во активных соединений tcp

netstat -an|grep udp | wc -l #кол-во активных соединений udp

systat -vmstat 1 # статистика по жестким дискам

systat -ifstat 1 # статистика по сетевым интерфейсам

zip -9 archive.zip file1 file2 file3 fle* # добавление файлов в zip-архив

top -SPH # запуск top с отображением загруженности отдельных ядер процессора

du -shc /home/* # просмотр размера home и домашних каталогов пользователей первого уровня

# pwd_mkdb -p /etc/master.passwd — обновить базу пользователей

# /usr/sbin/quotaoff -a; /sbin/quotacheck -avug; /usr/sbin/quotaon -a; — восстановление квот

Проблема с kern.maxswzone на FreeBSD

21 Май 2010

Однажды проснувшись с утра, я обнаружил, что мой сервер перестал отвечать на любые запросы, кроме пинга. Полез разбираться… Сделать ничего не получалось, пришлось перезагрузить после 100-дневного аптайма.

Перезагрузился, в логах обнаружил строку kernel: swap zone exhausted, increase kern.maxswzone
Статистика показывала, что особой нагрузки на сервак и ддос не было.

В чем же причина? Оказалось, неудовлетворительное значение переменной kern.maxswzone сгубило сервак (установлено по умолчанию было kern.maxswzone: 33554432). Значение допустимо для свопа размером до 7 Гб. У меня же своп был 8Гб, плюс я накануне добавил еще 8 на всякий случай. Видимо это и стало причиной ошибки.

Почитав в интернете, пришел к выводу что нужно увеличить значение втрое, прописав в loader.conf — kern.maxswzone=”100663296″

Сервер пока отлично работает.

Янукович и венок

19 Май 2010

Ржал и плакалъ

Установка лазерных эффектов своими руками

19 Май 2010

Дело было вечером, делать было нечего…

Буквально  за 5 минут, «на коленке» собрал установку лазерных эффектов, рисующую лазером на стене объекты, похожие на фигуры Лиссажу.

Два компьютерных вентилятора, лазерная указка за 1$, фанера, кусочки компакт-диска, приклеенные термоклеем под небольшим углом. Подключил к питанию, настроил луч в центр «зеркал», выключил свет… и завис на полчаса наблюдая за эффектами. Изменяя скорость вращения вентиляторов можно добиться сотни непохожих, не повторяющихся фигур.

Поигрался и забросил… Мощность китайской лазерной указки маловата, чтобы было отчетливо видно. Да и компакт-диски лучше заменить на небольшие зеркала. А так, в общем, занятно…

Увеличение объема подкачки swap во FreeBSD

19 Май 2010

Бывает необходимо быстро создать/добавить swap во FreeBSD для какого-нибудь процесса, пожирающего память с астрономической скоростью. В хендбуке нашел замечательное решение:
Создаем пустой файл размером 2Гб, заполненный нулями, в корне ФС:

# dd if=/dev/zero of=/swap.file bs=1M count=2048

Даем права доступа только для root

# chmod 600 /swap.file

Подключаем файл как виртуальный диск

# mdconfig -a -t vnode -f /swap.file -u 0

В каталоге /dev появляется виртуальный диск md0
И включаем в swap

# swapon /dev/md0

Для того, чтобы каждый раз при перезагрузке файл подключался в swap, необходимо добавить строчку в /etc/rc.conf

swapfile="/swap.file"

Собсно, заметку написал для себя, чтобы не искать в хендбуке.

AT&T через 17 лет

19 Май 2010

Понравились небольшие ролики от AT&T, в которых пытались показать, что будет в будущем. По-моему, слишком скромно :-)