среда, 30 апреля 2014 г.

MySQL TokuDB: Высокопроизводительный MySQL-движок TokuDB переведён в разряд открытых проектов

http://www.opennet.ru/opennews/art.shtml?num=36779

Компания Tokutek открыла исходные тексты проекта TokuDB (Tokutek storage engine), в рамках которого развивается высокопроизводительный транзакционный движок хранения для MySQL и MariaDB. Вместо классических B-tree деревьев в TokuDB применяются рекурсивные индексы (Fractal Tree indexes), что в сочетании с хранением данных в сжатом виде, позволяет значительно оптимизировать операции ввода/вывода.

Движок TokuDB оптимален в системах с интенсивной записью, когда требуется накапливать полученную в результате входящих запросов информацию и периодически генерировать на её основе отчёты. В качестве основных областей применения TokuDB называются конфигурации с большим числом запросов, связанных с добавлением, удалением и изменением данных, такие как социальные сети, анализ логов, рекламные сети и т.п.

При проведении тестов, TokuDB опережает InnoDB при добавлении больших объемов данных более чем в 10 раз (InnoDB 1,555 записей в сек, TokuDB 16,437 записей в сек), но проигрывает по степени нагрузки на CPU при выборке данных. Недостаточная эффективность выборки данных компенсируется ситуациями когда требуется произвести выборку большого числа последовательно сохранённых записей. В некоторых тестах выигрыш в скорости добавления данных достигает 80 раз. Применяемые методы сжатия данных позволяют в разы уменьшить размер базы и индексов (в 6.2 раза по сравнению с InnoDB и в 5.5 раз по сравнению с MyISAM), в некоторых ситуациях степень сжатия данных может достигать 25 раз.

четверг, 24 апреля 2014 г.

Proxmox: Failed to fetch https://enterprise.proxmox.com/debian/dists/wheezy/pve-enterprise/binary-amd64/Packages The requested URL returned error: 401

При обновлении свежих версий proxmox (3.1 и старше) после apt-get update может быть ошибка
W: Failed to fetch https://enterprise.proxmox.com/debian/dists/wheezy/pve-enterprise/binary-amd64/Packages  The requested URL returned error: 401

Суть -- "гоните бабла". То есть, обновление для этого сервера не пройдет, поскольку не куплена подписка.
По хорошему, надо смотреть в сторону других продуктов, и если требуется именно KVM+OpenVZ, подобный функционал можно реализовать на базе CentOS, но без "фирменного" веб-интрефейса. Да, он несколько неудобен и сначала весьма непонятен, но многие вещи он делает неплохо.
Итак, пока остаёмся на текущем продукте, но правим ошибку.

пятница, 18 апреля 2014 г.

просмотр memcached статистики

https://code.google.com/p/phpmemcacheadmin/
http://blog.elijaa.org/index.php?pages/phpMemcachedAdmin-Download-Version-1.2.2

Пример статистики
NAME                                      SIZE   %MEM    TIME  CONN   %HIT   REQ/s   GET/s   SET/s   DEL/s   EVI/s     READ/s   WRITE/s

127.0.0.1:11211 512.0 Mb 0.5 2 ms 310 96.5 40.8 34.4 4.8 1.6 0.0 1.0 b 5.4 b
SIZETotal cache size on this server
%MEMPercentage of total cache size used on this server
%HITGlobal hit percent on this server : get_hits / (get_hits + get_misses)
TIMETime taken to connect to the server and proceed the request, high value can indicate a latency or server problem
REQ/sTotal request per second (get, set, delete, incr, ...) issued to this server
CONNCurrent connections, monitor that this number doesn't come too close to the server max connection setting
GET/s, SET/s, DEL/sGet, set or delete commands per second issued to this server
EVI/sNumber of times an item which had an explicit expire time set had to be evicted before it expired
READ/sTotal number of bytes read by this server from network
WRITE/sTotal number of bytes sent by this server to network

Есть еще вариант с sflow
https://groups.google.com/forum/#!topic/memcached/zX0s7aMTf98

Просмотр того, что есть в кэше
https://redislabs.com/blog/finally-you-can-see-whats-stored-in-your-memcached

Просмотр "живых" запросов (в динамике)
ngrep -W none -T -d any "^(get|set|delete|END|STORED|VALUE|DELETED)" port 11211 | awk '{print $1 " " $2}'

Можно просто запускать режим отладки
/usr/bin/memcached -m 128 -vvv -p 11211 -U 11211 -u ubuntu -d

линки

понедельник, 14 апреля 2014 г.

apache, nginx: ограничение видов запросов

В apache через .htaccess, Limit и LimitExcept
Например
http://www.webmasterworld.com/apache/3537686.htm
http://board.phpbuilder.com/showthread.php?10367096-.htaccess-configuration-(limit-get-allow-deny)-and-lt-Limit-GET-HEAD-POST-gt

nginx
синтаксис: limit_except метод ... { ... }
контекст: location
Ограничивает HTTP-методы, доступные внутри location. Параметр метод может быть одним из GET, HEAD, POST, PUT, DELETE, MKCOL, COPY, MOVE, OPTIONS, PROPFIND, PROPPATCH, LOCK, UNLOCK или PATCH. Если разрешён метод GET, то метод HEAD также будет разрешён. Доступ к остальным методам может быть ограничен при помощи директив модулей ngx_http_access_module и ngx_http_auth_basic_module:

limit_except GET {
    allow 192.168.1.0/32;
    deny  all;
}
Обратите внимание, что данное ограничение действует для всех методов, кроме GET и HEAD.
http://nginx.org/ru/docs/http/ngx_http_core_module.html

суббота, 12 апреля 2014 г.

zabbix: учим слать почту через сервера с авторизацией

К сожалению, zabbix в плане почты завис в прошлом веке, поэтому ему нельзя указать логин-пароль для smtp-авторизации, а без авторизации ни один вменяемый почтовый сервер уже почту не примет. Влияние спаммеров...

sendmail: Отправка почты в мир с локальным hostname

Понадобилось настроить отправку почты с сервера за NAT, вдобавок сервер с внутренним hostname (вида zabbix.local). Поменять имя сервера нельзя и нет смысла. Вообще, правильным решением было бы снести этого монстра прошлого века и поставить что-то нормальное, но было желание получить опыта.

в /etc/mail/sendmail.mc ищем LOCAL_DOMAIN и вписываем туда нужный нам хостнейм, повторяем для MASQUERADE_AS. То, что кавычки в начале и конце строки разные -- не бага, а фича, аккуратно! Чуть ниже идут MASQUERADE_DOMAIN, добавляем секцию с внешним хостнеймом (примеры там есть). А также активируем
FEATURE(`always_add_domain')dnl
FEATURE(`masquerade_entire_domain')dnl
FEATURE(`masquerade_envelope')dnl
FEATURE(`allmasquerade')dnl

Теперь ставим sendmail-cf, чтобы можно было пересобрать конфигурацию, и перестраиваем конфиг
make -C /etc/mail
/etc/init.d/sendmail restart

От рута не тестируем! Сендмыл неадекватен и рутовую почту не подменяет даже с FEATURE(`allmasquerade') ! Вот всяком случае, с centos 5.10
Отслеживать можно через просмотр очереди mailq, очистка очереди через удаление файлов в /var/spool/mqueue
Причины отказа в /var/log/maillog

Линки

четверг, 10 апреля 2014 г.

SuperMicro IP KVM: no iKVM64 in java.library.path

Суть в том, что для supermicro IPMI требуется java web start, но почему-то просто JRE ему мало, нужен icedtea
sudo apt-get install icedtea-netx

Но после подключения и попытки запросить консоль можно поймать
no iKVM64 in java.library.path
Сохраняем  launch.jnlp на диск и вносим изменения в секции:
<resources os="Linux" arch="amd64"> и <resources os="Linux" arch="x86_64">, перед </resources> вписать
<property name="jnlp.packEnabled" value="true"/>
<property name="jnlp.versionEnabled" value="true"/>

<j2se version="1.6.0+" initial-heap-size="96M" max-heap-size="128M"/>

После этого должно нормально запускаться, проверим

javaws launch.jnlp

Линки
http://jskyworker.blogspot.ru/2013/02/no-ikvm64-in-javalibrarypath-supermicro.html
http://blog.coffeebeans.at/?p=83
http://www.hackerway.ch/2013/01/28/how-to-resolve-no-ikvm64-in-java-library-path-error-ubuntu-x64-12-04-lts/

вторник, 8 апреля 2014 г.

ISPManager и сбойный перенос пользователя

Бывает, что запускается процесс переноса.. и всё. Сутками будет гореть значок импорта, повторно запустить не даст -- задача запущена.
Как чистить?

  1. Удаляем /usr/local/ispmgr/var/run/ispmgr
  2. Также, /usr/local/ispmgr/var/.usermove
  3. Прибиваем pbackup (killall, pkill)
  4. А теперь сам процесс ispmgr, он перезапустится при первом же обращении к панели.
Но если возникают такие ситуации, значит что-то не так с процессом переноса, надо проверить права на каталоги, файлы, нет ли конфликтов имен, включить дебаг-режим и изучать.
Ну и помнить, что перенос далеко не всегда начинается сразу, и если мы пытаемся смигрировать миллион файлов, процесс может быть крайне долгим.

http://forum.ispsystem.com/ru/showthread.php?t=7499

DynDNS died...

To our Dyn free hostname users:

For the last 15 years, all of us at Dyn have taken pride in offering you and millions of others a free version of our Dynamic DNS Pro product. What was originally a product built for a small group of users has blossomed into an exciting technology used around the world.

That is why with mixed emotions we are notifying you that in 30 days, we will be ending our free hostname program. This change in the business will allow us to invest in our customer support teams, Internet infrastructure, and platform security so that we can continue to strive to deliver an exceptional customer experience for our paying customers.

Скорбим и ищем замену.

понедельник, 7 апреля 2014 г.

MariaDB multi-source replication

http://blog.mariadb.org/tag/mariadb-10/

Available since 10.0.0
  • Multi-source replication (MDEV-253)
    • Multi-source replication is a longtime wish of many users. In scenarios where you partition your data over many masters you can then replicate the data from all masters onto one slave. Typical use cases are:
      • Data partitioned over many masters can be pulled together onto one slave for analytical queries
      • Many masters can replicate to the same slave and a complete backup can be done on the slave
      • Newer hardware usually provides more performance. Usually all hardware isn’t upgraded at once and multi-source can be used for replicating many masters to a powerful new slave.
    • Original code from Taobao

Более подробное описание
https://mariadb.atlassian.net/browse/MDEV-253

Each master is handled by a specific replicator instance in the slave server. Each replicator instance consists of separate I/O thread, SQL thread, and associated state and configuration. In efffect, several replication slaves are running at the same time, each replicating from a separate master, but all replicating into a common data store (typically, but not necessarily to separate databases/tables).
A replicator instance is identified with a user-chosen name used in replication SQL statements such as CHANGE MASTER TO ... This name is also included in file names to distinguish the files that keep the replication state (relay logs, master.info, relay-log.info). This way, each separate instance can be configured separately, but otherwise the same way as existing single-source replication.

синтаксис
https://mariadb.com/kb/en/multi-source-replication/