Вы читаете журнал [info]sa_chernomor

Почтовый ящик.

.

28 Июн, 2011

…В детстве нас воспитывают согласно концепции о том, что существуют некие “взрослые”, которые во всем “разбираются” и точно знают, как устроен этот мир изнутри… Мы все растем и верим в эту сказку… только для того, чтобы потом с ужасом осознать, что теперь мы – и есть эти “взрослые”, и все “взрослые” вокруг нас, это такие-же дети, как и мы! Отличие только в том, что теперь у этих детей есть уже свои дети – и никто из этих “взрослых” не понимает толком: ЧТО ЗА ХУЙНЯ ТВОРИТСЯ ВОКРУГ?
– Джо Роган

via http://blog.brj.pp.ru/post/6691532579

на память

"Петров молчит, собираясь с мыслями. В его мозгу рождаются одна за другой красочные метафоры, которые позволили бы донести до окружающих сюрреализм происходящего, но как назло, все они, облекаясь в слова, начинаются неизменно словом «Блять!», совершенно неуместным в рамках деловой беседы."

http://alex-aka-jj.livejournal.com/66984.html

human readable /proc/net/netstat


cat /proc/net/netstat | \
 awk '(f==0) { i=1; while ( i<NF) {n[i] = $i; i++ }; f=1; next} \
(f==1){ i=1; while ( i<NF){ printf "%s = %d\n", n[i], $i; i++}; f=0} '

Tags:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=566819

Делаем по аналогии:
1. strace  -ff -e execve -s 1024 -p 
[pid  1906] execve("/opt/firefox-3.6/firefox", ["/opt/firefox-3.6/firefox", "http://......"],
 [/* 53 vars */]) = -1 ENOENT (No such file or directory)
2. gconftool -R /  | grep firefox -B1
...
   /desktop/gnome/url-handlers/ftp:
     command = /opt/firefox-3.6/firefox "%s"
--
    /desktop/gnome/url-handlers/http:
     command = /opt/firefox-3.6/firefox "%s"
...
3. gconftool -t string -s /desktop/gnome/url-handlers/https/command 'x-www-browser "%s"'
4. gconftool -t string -s /desktop/gnome/url-handlers/http/command 'x-www-browser "%s"'
5. ...
6. ...

centos5.5 & accepted conns queue

Очередь соединений по портам: ss -nlt

grep socket_inode /proc/net/tcp (socket_inode можно посмотреть в /proc/pid/fd/ или netstat -pnlte)

Ссылки по теме:

1. http://www.lexa.ru/nginx-ru/msg11814.html
>На linux это можно посмотреть с помощью netstat -ntp
>Все соединения в состоянии ESTABLISHED, но еще не ассоциированные с процессом - это те самые, из listen queue.

2. http://anight.livejournal.com/19313.html
3. http://mdounin.livejournal.com/7207.html

Tags:

bwm-ng на коленке

SLEEP=5; while sleep $SLEEP; do cat /proc/net/dev ; done | sed 's/:/: /'  | awk '/eth|lo/ {
   printf "%s %010.1f %010.1f\n", $1,
     ($2-pi[$1])*8/1024/1024/'$SLEEP',
     ($10 - po[$1])*8/1024/1024/'$SLEEP';
   pi[$1]=$2;
   po[$1]=$10
 }';




interface input_Mbit/sec output_Mbit/sec

Tags:

Когда выполняется снятие роли writer с ноды, агент подключается к mysql, в цикле в количестве max_kill_retries раз с интервалом в секунду выполняется просмотр текущих процессов и убиваются все непишушие (т.е. те, которые не выполняют insert, update, alter и некоторые другие). После того, как процессов не осталось либо истекло число попыток (max_kill_retries), устанавливается режим read_only и снимается ip-адрес роли. Далее роль передается на другой узел.

Очевидно, что цикл ожидания процессов не защищает от того, что могут приходить новые клиенты, а также неприятным выглядит то, что читающие процессы убиваются. К сожалению, не весь софт работает с транзакциями, поэтому более корректным было бы блокирование попыток новых подключений на этапе снятия роли. Это можно выполнить с помощью файрвола. Коммит https://github.com/chernomor/mysql-mmm/commit/31ca3f21d637fac137a8b0e60618339d759d0fa9 реализует данное поведение.

Для использования необходимо наложить патч и внести изменения в mmm_common.conf:
blocking_type           soft
iptables_block_cmd      iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -j REJECT
iptables_unblock_cmd    iptables -D INPUT -p tcp --dport 3306 -m state --state NEW -j REJECT


При использовании blocking_type=soft перед запуском цикла ожидания запускается команда iptables_block_cmd, цикл убивает процессы только после истечения лимита попыток. Команда iptables_unblock_cmd выполняется после установки режима read_only=ON.

В результате, после запуска iptables_block_cmd новые соединения не устанавливаются, но старые продолжают работать (благодаря опции -state NEW), это позволяет дать процессам время на корректное завершение.

Длительность таймаута можно регулировать опцией max_kill_retries в конфиге mmm_common.conf

Tags:

Debian Lenny: import from bzr to git

git-bzr (http://github.com/kfish/git-bzr) позволяет осуществлять двунаправленную синхронизацию
Чтобы он заработал в lenny пришлось пересобрать bzr и bzrtools из squeezy, а также поставить python-fastimport:

bzr branch lp:python-fastimport python_fastimport && cd python_fastimport && python setup.py install

Штатный fastimport не работает.

Tags: