/usr/bin/munin-cron --debug --nofork --host srv1.domain.ru --service if_eth0
Thursday 25 August 2011
Отладка плагинов munin
Осуществляет вот примерно такой командой:
Wednesday 24 August 2011
Tuesday 23 August 2011
Потребление электричества Датацентрами мира
По оценкам Greenpeace, потребление электроэнергии всеми Дата-Центрами мира, составляет от 1,5 до 2 процентов от общемирового спроса и с каждый год эта потребность увеличивается на 12%. Если бы Интернет был страной, то он бы занял пятое место по объему потребления электроэнергии после России и Японии.
Источник: http://telecombloger.ru/7971
Источник: http://telecombloger.ru/7971
Thursday 18 August 2011
Подсчет pps в Линуксе
Если с просмотром утилизации канала в Линукс нет никаких проблем, что с просмотром числа пакетов в секунду на приеме/передаче - небольшие сложности.
Вариант 1: iptraf
Устанавливаем:
Используем:
iptraf - Detailed interface statistics │ - eth0
Вариант 2: tcpstat
Устаналиваем:
Используем:
В ответ будет выдано примерно следующее:
Вариант 3: собственный скрипт.
Написать его крайне легко, а для получения данных можно использовать приведенные ниже источники:
Вариант 1: iptraf
Устанавливаем:
yum install -y iptraf
apt-get install -y iptraf
Используем:
iptraf - Detailed interface statistics │ - eth0
Вариант 2: tcpstat
Устаналиваем:
apt-get install -y tcpstat
yum install -y tcpstat
Используем:
tcpstat -o "%p\n" -i eth0 1
В ответ будет выдано примерно следующее:
418.00
606.00
559.00
1645.00
1695.00
491.00
334.00
536.00
416.00
Вариант 3: собственный скрипт.
Написать его крайне легко, а для получения данных можно использовать приведенные ниже источники:
ifconfig eth0 | grep pack
RX packets:6494715125 errors:0 dropped:28045132 overruns:0 frame:0
TX packets:7270808826 errors:0 dropped:0 overruns:0 carrier:0
cat /sys/class/net/eth0/statistics/tx_packets
cat /sys/class/net/eth0/statistics/rx_packets
Tuesday 16 August 2011
Monday 15 August 2011
Sunday 14 August 2011
Friday 12 August 2011
Санкт-Петербургские IRC сервера сети RusNet
irc.run.net и irc.spbu.ru
Thursday 11 August 2011
Tuesday 9 August 2011
MySQL: миграция с ENUM на VARCHAR
Перед началом работ необходимо сделать бэкап.
Итак, есть поле таблицы:
Напрямую, насколько я понял, конвертировать его в VARCHAR нельзя. Поэтому пойдем по пути через промежуточное поле, создаем его:
Итого, у нас теперь два поля в табоице:
Итак, сейчас у нас следующее содержимое таблиц:
Копируем значения:
Итого:
После этого переименовываем старую таблицу:
Переименовываем новую в требуемое имя:
Стираем старый филд с enum:
Првоеряем новый тип поля:
Делаем контрольную выборку:
Все! :)
Итак, есть поле таблицы:
`status` enum('new','suspended','complete') default NULL,
Напрямую, насколько я понял, конвертировать его в VARCHAR нельзя. Поэтому пойдем по пути через промежуточное поле, создаем его:
alter table mod_ressrvlist add newstatus varchar(255) not null;
Итого, у нас теперь два поля в табоице:
`status` enum('new','suspended','complete') default NULL,
`newstatus` varchar(255) NOT NULL,
Итак, сейчас у нас следующее содержимое таблиц:
select status, newstatus from sometable;
+-----------+-----------+
| status | newstatus |
+-----------+-----------+
| new | |
| suspended | |
| new | |
| new | |
| suspended | |
| new | |
| new | |
| new | |
| new | |
| new | |
| new | |
| suspended | |
| suspended | |
| new | |
| suspended | |
| suspended | |
| suspended | |
| new | |
| new | |
| new | |
| new | |
| suspended | |
| new | |
| new | |
| new | |
| new | |
| new | |
| new | |
| new | |
| new | |
| suspended | |
| suspended | |
| new | |
| new | |
| new | |
| new | |
| new | |
| suspended | |
| new | |
| suspended | |
| new | |
| new | |
| suspended | |
| new | |
| new | |
+-----------+-----------+
Копируем значения:
update sometable set newstatus = status;
Итого:
sql> select status, newstatus from mod_ressrvlist;
+-----------+-----------+
| status | newstatus |
+-----------+-----------+
| new | new |
| suspended | suspended |
| new | new |
| new | new |
| suspended | suspended |
| new | new |
| new | new |
| new | new |
| new | new |
| new | new |
| new | new |
| suspended | suspended |
| suspended | suspended |
| new | new |
| suspended | suspended |
| suspended | suspended |
| suspended | suspended |
| new | new |
| new | new |
| new | new |
| new | new |
| suspended | suspended |
| new | new |
| new | new |
| new | new |
| new | new |
| new | new |
| new | new |
| new | new |
| new | new |
| suspended | suspended |
| suspended | suspended |
| new | new |
| new | new |
| new | new |
| new | new |
| new | new |
| suspended | suspended |
| new | new |
| suspended | suspended |
| new | new |
| new | new |
| suspended | suspended |
| new | new |
| new | new |
+-----------+-----------+
После этого переименовываем старую таблицу:
ALTER TABLE sometable CHANGE status oldstatus enum('new','suspended','complete') default NULL;
Переименовываем новую в требуемое имя:
ALTER TABLE sometable CHANGE newstatus status varchar(255) NOT NULL;
Стираем старый филд с enum:
alter table sometable drop oldstatus;
Првоеряем новый тип поля:
`status` varchar(255) NOT NULL,
Делаем контрольную выборку:
select status from sometable;
+-----------+
| status |
+-----------+
| new |
| suspended |
| new |
| new |
| suspended |
| new |
| new |
| new |
| new |
| new |
| new |
| suspended |
| suspended |
| new |
| suspended |
| suspended |
| suspended |
| new |
| new |
| new |
| new |
| suspended |
| new |
| new |
| new |
| new |
| new |
| new |
| new |
| new |
| suspended |
| suspended |
| new |
| new |
| new |
| new |
| new |
| suspended |
| new |
| suspended |
| new |
| new |
| suspended |
| new |
| new |
+-----------+
Все! :)
MySQL - добавление нового значения в поле типа ENUM
Допустим, ранее было вот такое поле в некой таблице:
Но в один прекрасный момент понадобилось добавлять в этот самый enum что-то еще:
Вуаля:
Фишка тут еще в том, что новое значение нужно добавить в конец существующего списка:
Источник: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
`status` enum('new','suspended') NOT NULL,
Но в один прекрасный момент понадобилось добавлять в этот самый enum что-то еще:
ALTER TABLEsome_table MODIFY status enum('new','suspended', 'complete')
Вуаля:
`status` enum('new','suspended','complete') default NULL,
Фишка тут еще в том, что новое значение нужно добавить в конец существующего списка:
Changing the definition of an ENUM or SET column by adding new enumeration or set members to the end of the list of valid member values, as long as the storage side of the data type does not change. For example, adding a member to a SET column that has 8 members changes the required storage per value from 1 byte to 2 bytes; this will require a table copy. Adding members in the middle of the list causes renumbering of existing members, which requires a table copy.
Источник: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Tuesday 2 August 2011
В Bind 9 исправлен баг, который приводил к очень долгой загрузке на большом числе зон
http://www.isc.org/community/blog/201107/major-improvement-bind-9-startup-performance
И мы были подвержены этому багу...
И мы были подвержены этому багу...
Запуск arcconf на read only (ro) файловой системе
Итак, есть сервер с контроллером Adaptec, ФС которого перешла в RO. Очевидный вариант - проверить состояние массива утилитой arcconf, но она не срабатывает!
После выдачи ошибки команда блокируется. Первое предположение было, что открытие лог файла необходимо для работы программы, но strace открыл глаза на источник проблемы:
То есть, программа не могла создать лок-файл. Фиксится легко:
Все, после этого сработало на ура:
arcconf getconfig 1 ld
Could not open log file: /var/log/UcliEvt.log
После выдачи ошибки команда блокируется. Первое предположение было, что открытие лог файла необходимо для работы программы, но strace открыл глаза на источник проблемы:
umask(022) = 077
poll(0, 0, 50) = 0 (Timeout)
umask(077) = 022
open("/var/lock/.aac0lock", O_RDWR) = -1 EROFS (Read-only file system)
umask(022) = 077
poll(0, 0, 50) = 0 (Timeout)
umask(077) = 022
open("/var/lock/.aac0lock", O_RDWR) = -1 EROFS (Read-only file system)
umask(022) = 077
poll(0, 0, 50) = 0 (Timeout)
umask(077) = 022
open("/var/lock/.aac0lock", O_RDWR) = -1 EROFS (Read-only file system)
umask(022) = 077
poll(0, 0, 50) = 0 (Timeout)
umask(077) = 022
open("/var/lock/.aac0lock", O_RDWR) = -1 EROFS (Read-only file system)
umask(022) = 077
poll(0, 0, 50) = 0 (Timeout)
umask(077) = 022
open("/var/lock/.aac0lock", O_RDWR) = -1 EROFS (Read-only file system)
umask(022) = 077
poll(0, 0, 50) = -1 EINTR (Interrupted system call)
То есть, программа не могла создать лок-файл. Фиксится легко:
mount -t tmpfs none /var/lock
Все, после этого сработало на ура:
arcconf getconfig 1 ld
Could not open log file: /var/log/UcliEvt.log
Controllers found: 1
----------------------------------------------------------------------
Logical device information
----------------------------------------------------------------------
Logical device number 0
Logical device name : Device 0
RAID level : 10
Status of logical device : Optimal
Size : XXXXX MB
Stripe-unit size : 256 KB
Read-cache mode : Enabled
MaxIQ preferred cache setting : Enabled
MaxIQ cache setting : Disabled
Write-cache mode : Enabled (write-back)
Write-cache setting : Enabled (write-back)
Partitioned : Yes
Protected by Hot-Spare : No
Bootable : Yes
Failed stripes : No
Power settings : Disabled
--------------------------------------------------------
Logical device segment information
--------------------------------------------------------
Group 0, Segment 0 : Present (0,0) 6SJ0ET5R0000M124SKJU
Group 0, Segment 1 : Present (0,1) 6SJ0DRBM0000M125DK6G
Group 1, Segment 0 : Present (0,2) 6SJ0EET40000M125DNTK
Group 1, Segment 1 : Present (0,3) 6SJ0ERJZ0000M1214JZD
Command completed successfully.
Could not open log file: /var/log/UcliEvt.log
Subscribe to:
Posts
(
Atom
)