Утилита tune2fs. Отключаем зарезервированное под root пространство

Утилита tune2fs позволяет просматривать и изменять различные параметры файловых систем ext2 / ext3 / ext4.
Для просмотра текущих параметров файловой системы можно использовать tune2fs -l, например:

une2fs -l /dev/mapper/vg0-vg0root
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          /
Filesystem UUID:          7b0dedcb-bf88-4963-b50f-bbc2a2a77b7e
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              121421824
Block count:              485687296
Reserved block count:     24284364
Free blocks:              477747896
Free inodes:              121382784
First block:              0
…

ФС в Linux (ext) имеет 5% резервирование в каждом разделе для нужд root. Это резервированное место не может писать кто-то с UID отличным от root (0). Посмотрим как это выглядит на реальном примере:

Посчитать размер файлов старше 1 года в определенном каталоге

Нетривиальная задача подсчета места решается довольно просто:

find /var/www/site.ru/data/images/ -type f -mtime +365 -ls | awk '{sum = sum+$7 }; END { print sum/1000000 "Мб" }'

198067Мб

Добавляем заголовок HTTPS в Apache

Если SSL настроен на nginx, то до апача обычно не доходит какой протокол сейчас используется клиентом. Чтобы это исправить правим конфиги nginx и apache:

Добавляем в тот location что проксируем на apache:

location / {
  ... skip ..
  proxy_set_header X-Forwarded-Proto $scheme;
}

Также добавляем в конфиг виртуального хоста apache:

<VirtualHost *>
  ... skip ..
  SetEnvIf X-Forwarded-Proto https HTTPS=on
</VirtualHost>

Для apache должен быть загружен модуль setenvif_module

# apachectl -M | grep setenvif
 setenvif_module (shared)

Asterisk и запись разговоров в MP3

По-умолчанию Asterisk пишет запись разговоров в WAV-формат, многих это не страивает из-за того что WAV занимает довольно много места на сервере и при большом количестве записей разговоров потребуются большие диски. Вариант решения простой – перекодировать WAV в MP3.

Сначала установим требуемое ПО:
Подключаем rpmforge и ставим пакет lame:

rpm -Uhv http://tree.repoforge.org/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum install lame -y

Теперь настройки на стороне Asterisk:

Сначала в файле extensions.conf зададим глобальную переменную – путь до каталога с записями разгворов:

[globals]

RECDIR=/var/spool/asterisk/monitor

Применение патчей для ускорения Ruby

Чтобы ускорить производительность Ruby в целом и фреймворка Ruby on Rails, применим набор патчей MRI-Ruby (https://github.com/skaes/rvm-patchsets).
Rvm уже установлен, если нет ставим по инструкции: http://nagg.ru/2015/08/ustanavlivaem-ruby-pri-pomoshhi-rvm

Патчи уже есть в основном репозитории Ruby, поэтому можно применять их сразу после установки.

Зависимости:

Потребуется стандартный набор средств разработки:

yum groupinstall 'Development Tools'

Также может потребоваться более свежая версия autoconf (=>2.67):

rpm -Uvh ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/monkeyiq:/centos6updates/CentOS_CentOS-6/noarch/autoconf-2.69-12.2.noarch.rpm

Как включить протоколирование DEADLOCK в MySQL?

В основном, я всем советую использовать Percona вместо MySQL, это более быстрый форк, если выразиться кратко. Далее, как обычно, дело идет за тюнингом БД, но об этом я расскажу в других статьях, сейчас остановимся на протоколировании DEADLOCK, потому как дедлоки могут принести много проблем при работе вашего сайта.

Если у нас используется Percona, то ставим pt-deadlock-logger:

wget percona.com/get/percona-toolkit.rpm
yum localinstall percona-toolkit-2.2.4-1.noarch.rpm

Подключаемся к MySQL и создаем таблицу deadlocks в базе test:

mysql> use test;
mysql> CREATE TABLE deadlocks (
        server char(20) NOT NULL,
        ts datetime NOT NULL,
        thread int unsigned NOT NULL,
        txn_id bigint unsigned NOT NULL,
        txn_time smallint unsigned NOT NULL,
        user char(16) NOT NULL,
        hostname char(20) NOT NULL,
        ip char(15) NOT NULL, -- alternatively, ip int unsigned NOT NULL
        db char(64) NOT NULL,
        tbl char(64) NOT NULL,
        idx char(64) NOT NULL,
        lock_type char(16) NOT NULL,
        lock_mode char(1) NOT NULL,
        wait_hold char(1) NOT NULL,
        victim tinyint unsigned NOT NULL,
        query text NOT NULL,
        PRIMARY KEY  (server,ts,thread)
      ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.00 sec)

Теперь запускаем pt-deadlock-logger:

pt-deadlock-logger localhost -uroot -p'password' --dest D=test,t=deadlocks --daemonize --run-time 12h --interval 30s

За более подробной документацией можно обратиться на оффициальный сайт: http://www.percona.com/doc/percona-toolkit/2.1/pt-deadlock-logger.html

Как измерить производительность диска в Linux?

В данной статье я расскажу как измерять IOPS на вашем сервере.
IOPS – это количество операций ввода-вывода, выполняемых системой хранения данных, за одну секунду. Один из параметров, используемых для измерения производительности жестких дисков. Для измерения IOPS можно воспользоваться утилитой fio

Устанавливаем:

yum install fio

Cоздаем конфигурационные файлы для тестирования.

Устанавливаем Ruby при помощи rvm

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

curl -L https://get.rvm.io | bash

Важно! Пользователей, под которыми будут запускаться unicorn (ruby) включаем в группу rvm

Просмотр доступных версий руби:

rvm list known

Установка нужной версии:

rvm install 2.0.0

Включение нужной версии:

rvm use 2.0.0

Монтирование образов KVM и доступ к файлам

Система виртуализации KVM радикально отличается от OpenVZ, если в случае OpenVZ при утере пароля root вы можете легко его сбросить (просто зайдя в контейнер с помощью vzctl enter CTID), то в случае с KVM все сложнее, поэтому и решил дополнить данной статьей раздел сайта http://nagg.ru

Самое главное, чтобы получить доступ к файлам KVM с физической ноды, нужно установить некоторые пакеты:

yum install libguestfs-tools libguestfs

Не рискуй – делай бэкап! BackupSpace – место для вашего бэкапа

Друзья, рады сообщить вам о новом сервисе https://backupspace.ru/ – хостинг бэкапов.

Это надежное хранилище данных, расположенное на дисковых массивах (RAID10).

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

Хранилище подключено к коммутатору выделенным портом 10 Гбит/с.

У нас самые низкие цены!