пятница, 7 октября 2011 г.

17 простых советов для повышения продуктивности

В очередной раз просматривая http://habrahabr.ru/ натолкнулся на список простых, но грамотно сформулированных советов по повышению продуктивности.
Собственно эта статья является ее копией, оригинал - 17 простых советов для повышения продуктивности
Итак...

пятница, 30 сентября 2011 г.

Кнопка как ссылка

Оригинал - Кнопка как ссылка .
Памятка для себя....
Пару вариантов в стиле “поизвращаться”.
1.

<a href=”#”><img src=”pic.jpeg” /></a>
2.

<script type=”text/javascript” language=”javascript”> <!– document.write(” <input type=\”button\” onClick=\”window.location.href = \’index.html\’\” value=\”Кнопка\”>”); //или <button> //–> </script>
<noscript><br /> <a href=”index.html”>Кнопка</a><br /> </noscript>
3.

<form action=”1.php”> <input type=”text” /><input type=”submit” />
</form> <input type=”text” /> <input type=”submit” />
4.

<input value=”Жми” onclick=”location.href=’URL тут’” type=”button” /> 
5.

<style> input.sur { background: url(\’bg.gif\’); } </style> <form> <input class=”sur” value=”Кassssssssssн” onclick=”alert(‘Ни фига!’)” type=”button” /> </form> 
6.

<button onclick=”location.href=’http:\\www.htmlbook.ru’”><img src=”asd.gif” /></button> 
7.

<a href=”ff.html” class=”button”>Название кнопки</a>
.button {
background: фон кнопки;
}
.button:hover { фон другой кнопки} 
8.

<form action=”1.php” id=”sender”></form>
<a href=”javascript:void(0);” onclick=”javascript:document.getElementById(’sender’).submit();”><input type=”button” value=”Go” /></a>  

Мониторинг системы под FreeBSD. Полезные команды.


Системные команды, которыми можно проверить ресурсы системы, текущую нагрузку и просто просматривать различную информацию.

среда, 28 сентября 2011 г.

Основы Linux от основателя Gentoo



Навигация по основам Linux от основателя Gentoo:

Часть I:
BASH, основы навигации
Управление файлами и директориями
Ссылки, а также удаление файлов и директорий
Glob-подстановки



Часть II:
Регулярные выражения
Назначения папок, поиск файлов
Управление процессами
Обработка текста и перенаправления
Модули ядра

Часть III
Документация
Модель прав доступа
Управление аккаунтами
Настройка окружения (итоги и ссылки)

Также можно посмотреть следующие ссылки:
Gentoo FAQ

Видеоинструкции по Linux для начинающих от linuxway

воскресенье, 25 сентября 2011 г.

Введение в Gentoo. Часть 1. Минимальная установка.

Для первого знакомства с Gentoo необходимо его установить :)
Собственно я и опишу кратко процесс установки.

четверг, 15 сентября 2011 г.

Сетевые Intel во FreeBSD

EM
Драйвер для гигабитных сетевых карточек
Можно увеличить размеры очередей в карточке (в данном случае до 4 Мб).

### EM net
hw.em.rxd=4096
hw.em.txd=4096
hw.em.max_interrupt_rate=32000

Примечание: желательно посмотреть, какой буфер в реальности имеет ваша сетевая карточка. При возникновении проблем можно уменьшить его в 2 или 4 раза.
Для нормальной работы сетевой особо больше ничего не нужно. Драйвер em в FreeBSD уже очень давно и большинство глюков уже отловлено.
Можно разве что, еще немного заняться тюннингом sysctl.

IGB
Это драйвер для более новых гигабитных сетевых карточек (чипы 82575, 82576, 82580).
Поведение данного драйвера при первоначальном внедрении не очень радовало многих(FreeBSD 7.x). Особенно проблемы возникали с новыми "фичами".
Можно вместо базовых драйверов:
Скачать последнюю версию драйвера igb с офф.сайта Intel
Либо использовать драйвера от Yandex
Драйвера от Yandex более грамотно раскладывают нагрузку по ядрам процессора.
Добавляем в /etc/rc.conf

ifconfig_igb0="-rxcsum -txcsum -lro -tso up"
Это отключает LRO TSO и checksum.
Работать с LRO на данный момент при большом потоке не реально.
Добавляем в /boot/loader.conf

hw.igb.rxd=4096
hw.igb.txd=4096
hw.igb.max_interrupt_rate=32000
hw.igb.lro=0

Можно также внести изменения в ядро.
Рекомендуемые:

## Убирать, т.к. выкладывает проц в полку без прироста в производительности
#options                FLOWTABLE  
#Для создания дополнительных буферов под копирование сокетов
options         ZERO_COPY_SOCKETS # man 9 zero_copy_sockets
## Несколько таблиц маршрутизации.
## Полезно при использовании jail
#options         ROUTETABLES=10
options         HZ=4000
options         PANIC_REBOOT_WAIT_TIME=16
device lagg
А также подтюнить sysctl(параметры подбираются индивидуально под задачу)

net.inet.ip.forwarding=1 #включаем форвардинг пакетов
net.inet.ip.fastforwarding=1 #эта опция действительно ускоряет форвардинг
net.inet.tcp.blackhole=2 #ядро убивает tcp пакеты, приходящие в систему на непрослушиваемые порты
net.inet.udp.blackhole=0 #как и выше, только не убивает ибо traceroute пакеты не покажут этот хоп
net.inet.icmp.drop_redirect=1 #не обращаем внимания на icmp redirect
net.inet.icmp.log_redirect=0 #и не логируем их
net.inet.ip.redirect=0 #не реагируем на icmp redirect
net.inet.ip.sourceroute=0 #отключение маршрутизации от источника
net.inet.ip.accept_sourceroute=0 #старый и бесполезный механизм
net.inet.icmp.bmcastecho=0 #защита от SMURF атак
net.inet.icmp.maskrepl=0 #не отдавать по icmp паску своей подсети
net.link.ether.inet.max_age=30 #переспрашиваем каждые 30 секунд mac адреса в своём arp пространстве
net.inet.ip.ttl=226 #почему бы не поставить ttl побольше ;)
net.inet.tcp.drop_synfin=1 #небольшая защита
net.inet.tcp.syncookies=1 #от доса
kern.ipc.somaxconn=32768 #увеличиваем размер очереди для сокетов
kern.maxfiles=204800 #увеличиваем число открытых файловых дескрипторов
kern.maxfilesperproc=200000 #кол-во ф.д. на каждоый процесс
kern.ipc.nmbclusters=524288 #увеличиваем число сетевых буферов
kern.ipc.maxsockbuf=2097152 #
kern.random.sys.harvest.ethernet=0 #не использовать трафик и прерывания
kern.random.sys.harvest.interrupt=0 #как источник энтропии для random'a
net.inet.ip.dummynet.io_fast=1 #заставляет dummynet работать побыстрее
net.inet.ip.dummynet.max_chain_len=2048 #
net.inet.ip.dummynet.hash_size=65535 #
net.inet.ip.dummynet.pipe_slot_limit=2048 #
net.inet.carp.preempt=1 #включаем carp
net.inet.carp.log=2 #пишем логи карпа
kern.ipc.shmmax=67108864 #макс. размер сегмента памяти
net.inet.ip.intr_queue_maxlen=8192 #размер очереди ip-пакетов
net.inet.ip.fw.one_pass=0 #пакеты, прошедшие пайпы не вылетают из фаервола, а дальше идут по нему
dev.igb.0.enable_lro=0 #отключение large receive offloading 
dev.igb.1.enable_lro=0
dev.igb.0.enable_aim=0 #так нет аномалий с работой сетевушек
dev.igb.1.enable_aim=0
dev.igb.0.rx_processing_limit=2048 #адаптивный polling, разрешаем прерывания с сетевухи при достижении значения
dev.igb.0.flow_control=0 #отключение контроля потока
dev.igb.1.rx_processing_limit=2048
dev.igb.1.flow_control=0

Ссылки:
Intel® Gigabit ET Dual Port Server Adapter (чип 82576) и FreeBSD
Немного об использовании igb во FreeBSD 8
Тюнинг FreeBSD 8.2. Часть 2. Производительность.
FreeBSD 8 igb баги 
Производительный роутер на FreeBSD