Linuxサーバにおけるパフォーマンス高速化のための設定
CentOS5、Ubuntu、Debianで実行してみたもの。効果あった気がする。

■ディスクチューニング
参考URL
http://www.itmedia.co.jp/enterprise/articles/0707/19/news012.html
http://www.avant-tokyo.com/linux/hdparm.html

hda表示=IDE
sda表示=SCSIorSATA

sdaの場合には以下のいくつかのパラメータは無効

# hdparm -Tt /dev/hda 読み出しテスト
# hdparm -v /dev/hda パラメータ確認
# hdparm -c3 /dev/hda 32bitモード処理
# hdparm -u1 /dev/hda 割り込み処理対応
# hdparm -d1 /dev/hda DMA有効化
# hdparm -i /dev/hda HDが同時に読み込めるセクタ数
# hdparm -m16 /dev/hda 同時読み込みを16に設定
# hdparm -a1024 /dev/hda readaheadを1024に設定する
 -a128、-a256、-a512、-a1024、-a2048 測定結果のよいものを使う
# hdparm -k1 /dev/hda 設定を書き込み

■ディスク書き込みの削減
Linuxではファイルを読んだ時にもatimeを更新するため更新しない設定をすることで、書き込み量を減らす。
この設定はディスクにSSDを採用している際に特に有効。

/etc/fstabのマウントオプションとして「noatime」を指定する
# vi /etc/fstab
LABEL=/ / ext3 defaults,noatime 1 1 ←noatimeを追記

再マウントする
# mount -o remount /

mountコマンドでnoatimeが有効になっていることを確認
# mount
/dev/hda1 on / type ext3 (rw,noatime)

■I/Oスケジューラの変更
CentOS等では標準でcfqが採用されているが、データベース運用等をしている場合にはdeadlineが望ましい。

# echo deadline > /sys/block/hda/queue/scheduler
/sys/block/以下は使用しているディスクに合わせて変更

#cat /sys/block/hda/queue/scheduler
noop anticipatory [deadline] cfq ←となっていればOK。

/etc/rc.d/rc.local に以下を追記して再起動時にも適用されるようにする
echo deadline > /sys/block/hda/queue/scheduler

■プロセススワップの抑制
スワップが発生するとレスポンスが落ちるので、ファイルシステムキャッシュのためにプロセスがスワップしないよう設定を追加する。

/etc/sysctl.confに以下を追記する
vm.swappiness = 0

■/proc/sys/以下のパラメータ変更
カーネルのパラメータを修正してパフォーマンスを上げる。()内は参考値
マシン環境で最適値は異なるので試行錯誤する必要あり。

同時に開けるファイル数を増やす
/proc/sys/fs/file-max(131072)

同時スレッド数を増やす
/proc/sys/kernel/threads-max(131072)

ネットワークの送受信可能速度を上げる
/proc/sys/net/core/wmem_default(65536)
/proc/sys/net/core/wmem_max(1048576)
/proc/sys/net/core/rmem_default(65536)
/proc/sys/net/core/rmem_max(1048576)

プロセッサが一度に処理するパケット量を増やす
/proc/sys/net/core/netdev_max_backlog(4096)

tcpのtime_waitを保持できる上限を上げる
/proc/sys/net/ipv4/tcp_max_tw_buckets(131072)

利用可能な内部通信socketを増やす
/proc/sys/net/ipv4/ip_local_port_range(16384 65535)

設定を起動時に自動設定するためには以下に記述する
/etc/sysctl.conf

, , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

slimstatのインストールと設定

■簡易アクセス解析ツールslimstatのインストール

slimstatのダウンロード
[code]# cd ~/download
# wget http://slimstat.net/file/slimstat-2.1.zip
# unzip slimstat-2.1.zip[/code]

配置は解析したいサイトの直下へ
[code]# mv slimstat /var/www/html/
# cd /var/www/html/slimstat/[/code]

slimstatのデータベースを作成
[code]# mysql -u root -p
mysql> grant all privileges on slimstat.* to slimstat@localhost identified by ‘slimstatpassword’ WITH GRANT OPTION;
mysql> CREATE DATABASE `slimstat` DEFAULT CHARACTER SET utf8 ;
mysql> quit[/code]

設定ファイルを修正
[code]# vi _lib/config.php

/** Database connection */ ←データベース設定
var $db_server = ‘localhost’; // Leave as localhost unless you know otherwise
var $db_username = ‘slimstat’; // The username used to access your database
var $db_password = ‘slimstatpassword’; // The password used to access your database
var $db_database = ‘slimstat’; // The database containing SlimStat’s tables

/** The full name of your site */ ←サイト名設定
var $sitename = ‘Sitename’;

/** Username/password required to login to SlimStat */ ←アクセス制限
var $slimstat_use_auth = true;
var $slimstat_username = ‘slimstatadmin’;
var $slimstat_password = ‘adminpassword’;

/** Timezone */ ←タイムゾーン設定
var $timezone = ‘Asia/Tokyo’;[/code]

管理画面にアクセスして画面の指示に従う
http://hostname/slimstat/

セットアップファイルを削除して完了
# rm -f page/setup.php

あとは以下のいずれかを計測したいコンテンツに貼る。
Javascript用
[code][/code]
php用
[code][/code]

同じページに両方貼らないこと。ダブルカウントになる。
javascriptの方が取得できる項目は多い。携帯サイトなどではphp用の方が有利かも?

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

IceWarp Serverのインストール設定

CommuniGate Proの競合に当るIceWarp Server 10.0.6をインストールした記録。
IceWarp-Japan(韓国のIceWarp代理店の日本支社らしい)から必要なものをダウンロード。
http://icewarp-japan.com/

linux用は以下のドキュメントをダウンロードして読む。
依存ライブラリが多いので、必ず目を通す。
http://www.icewarp.co.kr/downloads/documentation/linuxquick-doc.zip

以下作業。
[code]# cd download/
# wget http://www.icewarp.com/download/linux/rh5/IceWarpServer-10.0.6_RHEL5.4.tar.gz[/code]

root以外で動作させる場合にはユーザを作成
[code]# adduser icewarp[/code]

依存ライブラリの存在チェック
[code]# updatedb
# locate libc.so.6
# locate libpthread.so.0
# locate libpcre.so[/code]
などなど…
ドキュメントに含まれる依存ライブラリリストを確認して必要なものを追加する。
[code]# yum install openldap openldap-devel libcap libcap-devel db4[/code]

libiconvの追加
[code]# yum install gcc make(必要に応じて)
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
# tar zxvf libiconv-1.13.1.tar.gz
# cd libiconv-1.13.1
# ./configure
# make
# make install[/code]

IceWarp Serverのインストール
[code]# tar zxvf IceWarpServer-10.0.6_RHEL5.4.tar.gz
# cd IceWarpServer-10.0.6_RHEL5.4
# ./install.sh[/code]

EULAが出てくるので、ウィザードに従って設定する
[code]** You must accept this license agreement if you want to continue.
** Press ENTER to accept license or CTRL+C to quit ←エンターキー

** Please make sure the IceWarp Mail Server is not running before installing.
** Press ENTER to continue, CTRL+C to quit ←エンターキー

** Installation/Upgrade mode entered
**
** Installation prefix [/opt/icewarp]:
** Performing new install
** Run services as user [root]:  ←root以外にするなら作成したユーザで
** Run services as group [root]:
**
** Please check entered informations before continuing:
**
** Installation prefix: /opt/icewarp (directory will be created)
** Services will run as user: root
** Services will run as group: root
**
** Press ENTER to continue, CTRL+C to quit ←エンターキー

** Creating /opt/icewarp directory
** Extracting distribution
** Please wait…
** Checking for previous ‘merak’ service installation …
** Checking if IceWarp Server is added as system service …
** Note: System service can be reinstalled
** by removing already installed service.
**
** Do you want to add IceWarp Server as a system service? [Y/n]: y ←サービスとして起動するか
** Adding IceWarp Server as system service
** Do you want IceWarp Server to start automatically on reboot? [Y/n]: y ←起動時に自動でスタートさせるか
** Making service as autostart
** Changing permissions
**
** Do you want to run IceWarp Server Wizard now? [Y/n]: y ←初期設定を行うか(やった方がいい。後からやるなら/opt/icewarp/wizard.sh)
** Starting IceWarp Server

**
** IceWarp Server
** (c) 1999 – 2009 IceWarp Ltd.
**
** Wizard configuration assistant
**
** Logging is redirected to the following file for future reference:
** Commands: /opt/icewarp/logs/wizard/icewarpserver-wizard-cmd.log
**
** Press [ENTER] to continue, CTRL-C to quit. ←エンターキー

**
** Root menu
** ———
**
** You have the following options:
**
** [1] Accounts and Domains management
** [2] License operations
** [3] Storage setup
**
** [0] Return
** [Q] Exit
**
** Enter your choice: 1 ←最初にアカウントとドメインを設定する

**
** Accounts and Domains management
** ——————————-
**
** You have the following options:
**
** [1] Add new domain
** [2] Delete domain
** [3] Add new user
** [4] Delete user
**
** [0] Return
** [Q] Exit
**
** Enter your choice: 1 ←ドメインを設定
**
**
** Create new domain:
**
** Domain name: test.example.com ←新規ドメインを設定
** Domain description: icewarp test server ←ドメインの説明
** Administrator email address: admin@test.example.com ←ドメイン管理者アドレスを設定
**
** OK? [Y/n]: y
** Domain created
** Add another domain? [Y/n]: n
**
** Accounts and Domains management
** ——————————-
**
** You have the following options:
**
** [1] Add new domain
** [2] Delete domain
** [3] Add new user
** [4] Delete user
**
** [0] Return
** [Q] Exit
**
** Enter your choice:3 ←ドメインのユーザを設定
**
**
** Create new account:
**
** Email address: admin@test.example.com ←先ほどの管理者アドレスを設定
** Password: ** ←パスワードを設定
** Once again to confirm: ** ←再入力
** Full name: testadmin ←アカウント名を設定
** Account is system administrator? [Y/n]: y
**
** OK? [Y/n]: y
** Account created
** Add another user? [Y/n]: n
**
** Accounts and Domains management
** ——————————-
**
** You have the following options:
**
** [1] Add new domain
** [2] Delete domain
** [3] Add new user
** [4] Delete user
**
** [0] Return
** [Q] Exit
**
** Enter your choice: q ←設定終了
**
** IceWarp Server was successfully installed or upgraded.
**
** Installer log is available in /root/icewarp-install.log
** Installer error log is available in /root/icewarp-install-error.log[/code]

IceWarpサーバの起動と停止
[code]# service icewarp start
# service icewarp stop[/code]

以下のURLに管理者のアドレスとパスでアクセスしてWebで設定を行う。
http://hostname:32000/admin

残念ながら管理画面では日本語の選択ができず、ログイン語も日本語設定がどうしたら可能なのかわからなかった。インストール自体は難しいわけではないが、依存ライブラリが多いことと、それが管理画面のどこに影響するのかがわかりにくいことで、どの機能が有効でどれが有効でないのか判断がしにくい。設定しても動作しないものがちらほら散見され、ログの解析などをきっちりやらないとまともに動作させることができない印象を受けた。

使いやすければCommuniGate Proとの入れ替えもありか?と思っていたが、依存ライブラリの多さやSPAMやSIP設定の煩雑さを考えると、Linuxのアップデートで思わぬところが動作しなくなるとか、運用面の負荷が大きくなりそうで、正直選択はできないと思った…。むしろLinuxでなくWindowsで動かす場合にはアリかもしれないが、SIPが必要ならCommuniGate Proが、SIPが必須でなければKerio Connect7の方がスパム&ウイルス対策がビルトインされたメールサーバとしては圧倒的に使いやすいので、IceWarpの位置づけは結構微妙な感じ。

うーん、ちょっと残念。

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

DebianでCommuniGate Pro + ClamAV + cgpavを利用する

DebianでCommuniGate Pro + ClamAV + cgpavを利用するまでの手順。CentOSとはパッケージ名やパスが異なるので一応書いておく。

■clamdのインストール
Debianでは通常用意されているパッケージで最新化されている。clamdはclamav-daemonというパッケージになる。
[code]# apt-get install clamav clamav-daemon[/code]

インストール完了後定義ファイルの更新。
[code]# freshclam[/code]

clamd.confの編集
[code]# vi /etc/clamav/clamd.conf
User clamav

User root (CGServerと同じユーザで動作させる)
大きなファイルを扱う場合(CGPのファイルサイズ制限と合わせる)
StreamMaxLength 100M[/code]

編集したらデーモンを再起動
[code]# /etc/init.d/clamav-daemon restart[/code]

■cgpavのインストールと設定
[code]# cd ~/download/
# wget http://program.farit.ru/antivir/cgpav-1.4.tar.gz
# tar zxvf cgpav-1.4.tar.gz
# cd cgpav-1.4
# ./configure –with-antivirus=clamav –with-spamassassin=no (ClamAV指定、スパム対策無し)
# make
# make install

# vi /var/CommuniGate/Settings/cgpav.conf
clamd_socket = /tmp/clmad

clamd_socket = /var/run/clamav/clamd.ctl

infected_action = discard

infected_action = addheader(標準では有無を言わさずウイルスメール自体を消去するので注意)

add_not_infected_header = false

add_not_infected_header = true(チェックして問題なかったことがわかる)

recipients_notification = false(受信先にウイルスメールが来たことを通知する場合trueにする)[/code]

動作試験こちらもパス。なぜうまく動作しないのかわからない。

■その他
CommuniGate Pro上の設定はCentOSと同じ。

ログのチェック
[code]# cat /var/log/syslog | grep cgpav[/code]

, , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

CentOSで CommuniGate Pro + ClamAV + cgpav1.4 設定

CommuniGate Proでメールのウイルスチェックを行うにはいくつか方法があるが、ここでは無料のClamAVを利用する設定を行う。

■ClamAVの設定
clamavとは言ってもサーバ動作させるためclamdというデーモンを必要とする。
CentOSの場合、epelリポジトリにclamav-serverパッケージがあり、これがclamdを含むがバージョンが2010/03/11現在0.95.1で最新の0.95.3より2つ古い。ClamAVは最新バージョンを利用しないとログにアラートが大量に出ることから、最新バージョンになっているRPMForgeリポジトリのパッケージを利用することとする。

RPMForgeの準備
[code]# rpm –import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
# rpm -ivh rpmforge-release-0.5.1-1.el5.rf.i386.rpm[/code]

clamdパッケージのインストール
[code]# yum install clamd[/code]

clamdの設定
[code]# vi /etc/clamd.conf
#Example

消す

User clamav

User root (CGServerと同じユーザで動作させる)

大きなファイルを扱う場合(CGPのファイルサイズ制限と合わせる)
StreamMaxLength 100M[/code]

定義ファイル更新設定
[code]# vi /etc/freshclam.conf
#Example

消す

#DatabaseMirror db.XY.clamav.net

DatabaseMirror db.jp.clamav.net[/code]

clamdを起動する
[code]# service clamd start[/code]

定義ファイルを更新する
[code]# freshclam[/code]

更新したら正しく動作しているか確認するためウイルステストファイルをダウンロードしてチェックする。以下のようにSCAN SUMMARYが出ればOK。
[code]# wget http://www.eicar.org/download/eicar.com
# clamscan –infected –remove –recursive
/root/download/cgpav-1.4/eicar.com: Eicar-Test-Signature FOUND
/root/download/cgpav-1.4/eicar.com: Removed.

———– SCAN SUMMARY ———–
Known viruses: 726575
Engine version: 0.95.3
Scanned directories: 14
Scanned files: 88
Infected files: 1
Data scanned: 1.79 MB
Data read: 0.95 MB (ratio 1.89:1)
Time: 1.911 sec (0 m 1 s)[/code]

■cgpav-1.4を設定する
clamdの動作確認ができたら次はcgpavを設定する。cgpavはmakeが必要になるので、gccやmakeが入っていないサーバ環境の場合はインストールしておく。
[code]# yum install gcc make automake[/code]

cgpav-1.4をダウンロードしてmakeする
[code]# cd download/
# wget http://program.farit.ru/antivir/cgpav-1.4.tar.gz
# tar xvf cgpav-1.4.tar.gz
# cd cgpav-1.4
# ./configure[/code]

./configureの途中で設定を確認されるのでここではClamAVのみ設定し、SpamAssassinは使わない設定を行う。
[code]***********************************************
Choose Anti-Virus daemon
Enter 1, 2, 3, 4, 5, 6
1 Clamav (free)
2 Sophos sophie
3 Kaspersky (KAV)
4 Trend Micro trophie
5 Dr.Web
6 Without Anti-Virus support
1
Will use Clamav Anti-Virus daemon clamd

***********************************************
Enable SpamAssassin support
Enter 1 or 2
1 Enable SpamAssassin support
2 Disable SpamAssassin support
2
Will not use SpamAssassin[/code]

./configureが終了したらmakeしてinstallする。
[code]# make
# make install[/code]

CommuniGate Proのデフォルトパスにcgpavが存在するか確認する。
[code]# ls /var/CommuniGate/[/code]

cgpavの設定を行う
[code]# vi /var/CommuniGate/Settings/cgpav.conf
clamd_socket = /tmp/clmad

clamd_socket = /var/run/clamav/clamd.sock

infected_action = discard

infected_action = addheader(標準では有無を言わさずウイルスメール自体を消去するので注意)

add_not_infected_header = false

add_not_infected_header = true(チェックして問題なかったことがわかる)

recipients_notification = false(受信先にウイルスメールが来たことを通知する場合trueにする)[/code]

ここで、本来ならcgpavの動作確認をするため、以下の手順がドキュメントには記載されているが、なぜかCentOSでもDebianでもうまく動作せず…。CGP経由の動作には問題なかったのでパス。
[code]# cd /var/CoomuniGate/
# wget http://www.eicar.org/download/eicar.com
# ./cgpav
[/code]

■CommuniGate Proの設定をする
CommuniGate Proでウイルスチェックにメールを渡す設定を行うため、管理画面にアクセスする。
[code]http://hostname:8010/[/code]

「設定」→「全般」→「ヘルパー」を開き、外部コンテンツフィルターに以下のパラメータを入力して更新する。
 [code]オン antivirus
 プログラムパス:cgpav
 タイムアウトと自動再起動は「しない」[/code]

「設定」→「メール」→「ルール」に以下の設定追加する。
「viruscheck」と入力して「ルール追加」ボタンを押す
「viruscheck」ルールの編集リンクをクリックする

 ここでウイルスチェックをしたいルール条件を設定する。とりあえずテスト用にpostmaster宛てをチェックする設定を以下のように追加する。
 [code]Toアドレス 等しい postmaster@localhost
 外部フィルター antivirus[/code]

これで設定は完了。

■ウイルスチェック試験を行う
ウイルスチェックの動作確認をするため、WebMailにアクセスしてpostmasterでログインする。
[code]http://hostname:8100/[/code]

送信先にpostmaster@localhostと入力して適当なメールを作成し送信してみる。
自分宛てにメールが届き、メールのヘッダに「X-Virus-Scanned: by cgpav」が付加されていれば動作成功。

先ほど試験用にダウンロードしたテストウイルスeicar.comを添付ファイルとしてメールに付けてpostmaster@localhostに送り、届いたメールのヘッダに「X-Virus-Flag: Yes」と付いていれば完璧。

ウイルスチェックの結果は以下でも確認可能。
[code]# cat /var/log/message | grep cgpav[/code]

後はウイルスが発見された場合のヘッダをベースに振り分けルール等を書いて個別に対応する。

■cgpav設定変更の注意
設定の変更はcgpav.confの編集で行うのだが、一度CommuniGate Proから稼働させた場合、設定を変更を反映するためには、該当cgpavプロセスをkillしたりkill -HUPしたりしてもダメで、OSごと再起動しないとなぜかうまく反映されなかったので注意。この辺りもっと検証が必要。

, , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

phpmotionで動画サービスを立てる

CentOS5環境でMyNETSが動いているところからの差分…なハズ。

2009/6/25に作業した記録なので日付付きファイルのURLは適宜最新に読み替えていただければと思います。

参考URL
http://d.hatena.ne.jp/con_mame/20080926
http://menta.orz.hm/phpmotion.sh.txt

# 必要なパッケージをインストールします。
[code]yum -y install subversion
yum -y install automake
yum -y install gcc
yum -y install gcc-c++
yum -y install libtool
yum -y install php-devel[/code]

# x264を入手するために必要なgitをインストールするためのリポジトリを追加します。
[code]echo “[dag]” >> /etc/yum.repos.d/CentOS-Base.repo
echo “name=Dag RPM Repository for Redhat EL5” >> /etc/yum.repos.d/CentOS-Base.repo
echo ‘baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag’ >> /etc/yum.repos.d/CentOS-Base.repo
echo “gpgcheck=1” >> /etc/yum.repos.d/CentOS-Base.repo
echo “enabled=0” >> /etc/yum.repos.d/CentOS-Base.repo
echo “gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt” >> /etc/yum.repos.d/CentOS-Base.repo[/code]

# gitをインストール
[code]yum -y –enablerepo=dag install yasm git[/code]

# 作業用ディレクトリを作成します。
[code]mkdir /tmp/install/
cd /tmp/install/[/code]

# mplayerのためのコーデックをコピーします。
[code]wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2
tar jxvf essential-20071007.tar.bz2
mkdir /usr/local/lib/codecs
mv /tmp/install/essential-20071007/* /usr/local/lib/codecs/
chmod -R 755 /usr/local/lib/codecs/[/code]

# x264のインストール
[code]wget http://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20090625-2245.tar.bz2
cd x264-snapshot-20090625
./configure –enable-shared
make && make install
cd /tmp/install/[/code]

# xvidのインストール
[code]wget http://downloads.xvid.org/downloads/xvidcore-1.2.1.tar.gz
tar zxvf xvidcore-1.2.1.tar.gz
cd xvidcore/build/generic
./configure –prefix=/usr
make && make install
cd /tmp/install/

wget wget http://jaist.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
tar zxvf lame-3.97.tar.gz
cd lame-3.97
./configure –prefix=/usr
make && make install
cd /tmp/install[/code]

# liboggのインストール
[code]wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
tar zxvf libogg-1.1.3.tar.gz
cd libogg-1.1.3
./configure –prefix=/usr
make && make install
cd /tmp/install/[/code]

# faadのインストール
[code]wget http://jaist.dl.sourceforge.net/sourceforge/faac/faad2-2.6.1.tar.gz
tar zxvf faad2-2.6.1.tar.gz
cd faad2
sh bootstrap
./configure –prefix=/usr
make && make install
cd /tmp/install/[/code]

# flvtoolのインストール
[code]wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
tar zxvf flvtool2-1.0.6.tgz
cd flvtool2-1.0.6
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install
cd /tmp/install/[/code]

# rpmforgeを追加
[code]wget http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rm -f rpmforge-release-0.3.6-1.el5.rf.i386.rpm[/code]

# デフォルトでは有効にしないように
[code]sed -i “s/enabled = 1/enabled = 0/g” /etc/yum.repos.d/rpmforge.repo[/code]

# 残りのコーデックをインストール
[code]yum -y –enablerepo=rpmforge install a52dec-devel faac-devel[/code]

# コーデックを有効にする
[code]echo “/usr/local/lib” >> /etc/ld.so.conf.d/lib.conf
ldconfig[/code]

# mplayerのインストール
[code]wget http://www.mplayerhq.hu/MPlayer/releases/mplayer-export-snapshot.tar.bz2
cd mplayer-export-2009-06-25
./configure –prefix=/usr
make && make install
cd /tmp/install/[/code]

# ffmpegのインストール
[code]wget http://ffmpeg.org/releases/ffmpeg-export-snapshot.tar.bz2
cd ffmpeg-export-2009-06-25
./configure –enable-libmp3lame –enable-libx264 –enable-libxvid –enable-libfaac –enable-libfaad –enable-pthreads –enable-gpl –enable-shared –enable-nonfree –prefix=/usr
make && make install
cd /tmp/install/[/code]

# ffmpeg-phpのインストール
[code]wget http://voxel.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.6.0.tbz2
tar jxvf ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0
vi ffmpeg_frame.c (→RGBA32をRGBAに全て書き換え)
phpize
./configure –prefix=/usr
make && make install
cd /tmp/install/[/code]

# ffmpeg-phpの有効化
[code]echo “extension=ffmpeg.so” >> /etc/php.ini[/code]

# 設定を有効化するためにapacheの再起動(reloadでもおk)
[code]/etc/init.d/httpd restart[/code]

# phpmotionのインストール
[code]wget http://downloads.phpmotion.com/V3.0/php5/phpmotion.zip
unzip phpmotion.zip
mv phpmotion /var/www/html/video
cd /var/www/html/
chown -R apache:apache video
chmod -R 0755 video/cgi-bin[/code]

# http://example.com/video/でアクセスするためのパス設定を以下に追加

[code]vi cgi-bin/uu_default_config.pm
vi cgi-bin/audio/uu_default_config.pm
vi audio_uploader_conlib.php
vi uploader_conlib.php
vi .htaccess[/code]

# mysqlにデータベースとユーザを追加
[code]mysql -u root -p
mysql> CREATE DATABASE `video` DEFAULT CHARACTER SET utf8 ;
mysql> grant all privileges on video.* to user@localhost identified by ‘passwd’;
mysql> quit;[/code]

# 管理画面にアクセス
[code]http://example.com/video/setup/[/code]

# 設定後
[code]mv /var/www/html/video/setup /var/www/html/video/setup.bk[/code]

※たしか一部不正確な記述があったような気がするけど…思い出せない。
再検証する気力はないのでそのまま転記。

とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

 □パフォーマンスチューニングのテクニック

  ・まずは状況把握
   原因の推測のための情報収集
   各種ツールの利用
   ボトルネックをひとつづつ潰す

  ・パフォーマンス指標
   スループット
   レスポンスタイム
   スケーラビリティ
   上記の組み合わせ

  ・スロークエリログの分析
   5.1からは0.x秒単位でログ指定が可能
   頻繁に記録されるslowログから対応する
   mysqldumpslowで統計処理して見極め
   クエリアナライザの利用(高機能版mysqldumpslow)
    MySQL Enterprise Monitor + MySQL Proxy
    Proxyでクエリと統計を収集、Monitorで記録分析表示

  ・EXPLAINで解析
   遅いクエリをチェックしていく
   EXPLAIN typeでALL、index、index_subqueryが出たら注意
   key_lenが大きすぎるとNG
   indexを使っていない場合にはつけてみる
    (テーブルにindex多すぎるとかえって遅くなるので注意)
   INサブクエリは遅いので、JOINで書き直す
   EXPLAIN Extraで以下の値が出たら注意
    Using temporary:indexを使う
    Using filesort:頻発よくない複合indexを検討
    Full scan on NULL key:値によってパーテショニング検討
    Using join buffer:index使ってないところにつける

  ・show profileで解析
   処理の順番を測定し処理毎の時間を出せる
   テスト環境など別のタスクのない状況で行う
   使い方
[code]    mysql> SET profiling=1;
    mysql> 解析したいクエリ実行
    mysql> SHOW PROFILE;[/code]
   履歴表示
[code]    mysql> SHOW PROFILES;
    mysql> SHOW PROFILE FOR 1; 何番目かの履歴
    mysql> SET profiling_history_size=100; 履歴保存数設定[/code]
   表示オプション
[code]    mysql> SHOW PROFILES ALL; 全表示
    CPU CPU使用率
    SWAP スワップしたかしないか など[/code]

  ・show statusで統計情報表示
   show session status 現在セッションの情報表示
   show global status サーバ全体の状況
   以下のように利用する
[code]    mysql> FLASH STATUS;
    mysql> SET profiling=1;
    mysql> 解析したいクエリ実行
    mysql> SHOW PROFILE;
    mysql> SHOW SESSION STATUS;
    mysql> SHOW GLOBAL STATUS;[/code]
   注意すべきパラメータ
    Create_tmp*;テンポラリ作成が多いとNG
    Handler_*;indexを使わない行アクセスが多いとNG
    Key_*:キャッシュミス率が高いときはNG
    Qcache_*:クエリキャッシュのヒット率が悪い時は無効に
    Select_*;遅いSELECTがわかる、FULL JOINが出ていたら無くす

  ・show innodb statusで分析
   CREATE TABLE innodb_monitor(a int) ENGINE INNODB; で有効
   再起動すると消える
   mysql> SHOW INNODB STATUS\G; とすると見やすい
   注意すべきパラメータ
    SEMAPHORE:ロック状況がわかる OS waitが多いとNG
    LOG:消費量がわかる
    BUFFER POOL AND MEMORY:ヒット率でサイズ調整必要
  ・クエリを書き換える
   検索条件がOR:index MergeがNG時はUNION DISTINCTで解決
   適合indexがない:マルチカラムの場合、左から順に指定必須
    1,2,3 の時 1,2と1,2,3は有効、1,3と2,3は無効
   JOINではLIMIT効かないので注意
   INサブクエリはJOINで書き直す

  ・テーブルデフラグ
   OPTIMIZE TABLEで解決
   連続データはパーテショニングしやすい(ログとか日付で連続する)
   パーテショニングしたデータはフラグメントしない、削除が高速

  ・パラメータチューニング
   innodb_buffer_pool_size;空きメモリの7割くらい割当する
    index以外もキャッシュされる
   innodb_log_file_size/innodb_log_file_in_group:INSERTが高速になる
    が128M程度でOK
   key_buffer_size:空きメモリの3割程度
    (MyISAMはindexしかキャッシュしない)
   セッションパラメータは256kbで十分 
    大きくても2Mくらいで(メモリ使いすぎる)
   
 □システム全体でパフォーマンス対策

  ・MySQLのバージョン
   5.0以上を利用する 5.0と5.1は8コアまでスケール可能(innoDB)

  ・ハードウェア
   64bitマシンを導入する(メモリ空間重要)
   ライトキャッシュ付きハードRAID推奨(キャッシュあればRAID5もOK)
   IOPSの高い構成を(SSDもあり!)

  ・OS
   64bit推奨になる
   LinuxではI/Oスケジューラに注意 noop deadline推奨
   noopはinnoDBで利用するのに適している
   I/Oキューの数値を上げる デフォルト128、10000?

  ・データベースエンジン
   innoDBはinsert bufferがあるのでログ等にも向く
   MyISAMはHDD性能に依存する 限界性能低い
    でもSSDならinnoDBより速くなる
   innoはHDDでもSSDでも限界性能があまり変化しない

  ・データベースパーテショニングを利用する
   アクセスする全てのインデックスがメモリ上にあれば高速に動作
   インデックスを細かくするためパーテショニングを使う(5.1以降必須)
   innoDBでもMyISAMでも効果がある

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (1 投票, 平均値/最大値: 1.00 / 5)
Loading...

CommuniGate Proから外部プログラムへメールを渡す

CommuniGate Proから稼動OS上の任意の外部プログラムにメールをパスするための設定
以下はphpを使ったSNSプログラムMyNETSにメールを処理させる設定

SNS管理者アドレスを admin@example.com としてpostmasterで受信し
メール日記投稿などを 任意の投稿コード@example.com で受信するものとする
MyNETSは /var/www/Usagi のパスに設置されたものとする

PIPEモジュールにphpのパスを設定
 設定→メール→PIPE で phpのあるパスを記述
 CentOSの場合/usr/bin/php なので

 /usr/bin と記述

メールのハンドルのためルータに設定を追加
 設定→ルータに 以下を追記(フルバウンス)

 [code] = postmaster
 <*@example.com> = “php /var/www/Usagi/bin/mail.php”@pipe[/code]

これでadmin以外のexample.comへのメールはCommuniGate Proで受信された後MyNETSで処理される。
この場合バウンスメール含めて全部MyNETSに渡るので注意。

ちゃんと書くなら
[code] = “php /var/www/Usagi/bin/mail.php”@pipe[/code]
とか、MyNETSで指定されている必要なアカウントを並べていく

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

Backlogはnulab社の提供する素晴らしいサービスです。
http://www.backlog.jp/

参考URL
https://www.backlog.jp/package/doc/professional/install-guide/install-guide.html

指定のURLから評価版をダウンロードする ~/download/ に配置しておく

# cd ~/download

SunからJavaSE6をダウンロードしてインストールする(割愛)

javaのフォント設定

# yum install fonts-japanese で最新のフォントが導入されていることを確認

# mkdir /usr/java/default/jre/lib/fonts/fallback
# ln -s /usr/share/fonts/ja/TrueType/kochi-*.ttf /usr/java/default/jre/lib/fonts/fallback/

javaのデータベース設定準備(mysql)

# wget http://ftp.jaist.ac.jp/pub/mysql/Downloads/Connector-J/mysql-connector-java-5.1.8.tar.gz
# tar zxvf mysql-connector-java-5.1.8.tar.gz

mysql設定準備

# yum install perl-DBD-MySQL

mysqlにデータベース作成

# mysql -u root -p
mysql> grant all privileges on backlog.* to backlog@localhost identified by ‘backlog’ WITH GRANT OPTION;
mysql> CREATE DATABASE `backlog` DEFAULT CHARACTER SET utf8 ;
mysql> quit

Backlogインストール

# rpm -ivh backlog-app-1.3.0-01.el5.noarch.rpm backlog-www-1.3.0-01.el5.i386.rpm

mysqlドライバを配置

# cp mysql-connector-java-5.1.8/mysql-connector-java-5.1.8-bin.jar /opt/backlog/

backlogディレクトリに移動

# cd /opt/backlog/

設定コマンドを起動

[root@xc backlog]# /opt/backlog/bin/init.sh

[code]
======================================================================
Backlog Professional Configurater
____ _ _
| _ \ | | | |
| |_) | __ _ ___| | _| | ___ __ _
| _ < / _` |/ __| |/ / |/ _ \ / _` | | |_) | (_| | (__| <| | (_) | (_| | |____/ \__,_|\___|_|\_\_|\___/ \__, | __/ | |___/ [http://www.backlog.jp] ====================================================================== Backlog Professionalの環境設定を開始します。 BacklogにアクセスするURLを設定してください [http://www.example.com:8969] (設定したURLに /backlog がコンテキストパスとして追加されます) http://www.example.com:8969 を設定しました。 SMTPサーバのホスト名を指定してください [localhost] localhost を設定しました。 御使用のデータベースを選択してください ( m / p ) m
MySQL を選択しました。

データベースサーバのホスト名を指定してください [localhost]

localhost を設定しました。

データベースサーバのポート番号を指定してください [3306]

3306 を設定しました。

データベースサーバのユーザを指定してください [backlog]

backlog を設定しました。

データベースユーザのパスワードを入力してください [backlog]

backlog を設定しました。

次の設定内容で環境設定を行います。

Backlog URL [http://www.example.com:8969]
SMTPサーバホスト [localhost]
データベース [MySQL]
サーバホスト [localhost]
ポート番号 [3306]
ユーザ [backlog]
パスワード [backlog]

よろしいですか?
( y<続ける> / r<やり直し> ) y

使用するJDBCドライバを選択してください。
1:mysql-connector-java-5.1.8-bin.jar
1

1:mysql-connector-java-5.1.8-bin.jar が選択されました。

テーブルの新規作成を開始します。
CREATE TABLE space
CREATE TABLE project
CREATE TABLE users
CREATE TABLE autologin_user
CREATE TABLE component
CREATE TABLE information
CREATE TABLE status
CREATE TABLE version
CREATE TABLE default_issue_type
CREATE TABLE issue_type
CREATE TABLE issue
CREATE TABLE issue_component
CREATE TABLE issue_affectedversion
CREATE TABLE issue_fixedversion
CREATE TABLE attachment
CREATE TABLE comment
CREATE TABLE licence_type
CREATE TABLE licence
CREATE TABLE licence_changelog
CREATE TABLE mail
CREATE TABLE dashboard
CREATE TABLE page
CREATE TABLE page_attachment
CREATE TABLE page_tag
CREATE TABLE page_tag_link
CREATE TABLE party
CREATE TABLE party_user
CREATE TABLE project_user
CREATE TABLE project_mail
CREATE TABLE reminder
CREATE TABLE remote_address
CREATE TABLE space_contact
CREATE TABLE space_contact_changelog
CREATE TABLE space_order
CREATE TABLE space_remarks
CREATE TABLE disk_usage
CREATE TABLE shared_file
CREATE TABLE subversion
CREATE TABLE issue_shared_file_link
CREATE TABLE page_shared_file_link
CREATE TABLE work_item
CREATE TABLE step
CREATE TABLE space_field
テーブルの新規作成が終了しました。

コピー
終了
設定が完了しました。

Backlogの起動を確認後、引き続き http://www.example.com:8969/backlog/Setup.action に接続してユーザ情報を登録してください。
backlog-app を起動中: Using CATALINA_BASE: /opt/backlog/tomcat
Using CATALINA_HOME: /opt/backlog/tomcat
Using CATALINA_TMPDIR: /opt/backlog/tomcat/temp
Using JRE_HOME: /usr/java/default
[ OK ]
backlog-www を起動中: [ OK ][/code]

サービスにアクセスできるようiptableを修正

# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 8969 -j ACCEPT

iptables再起動
# service iptables restart

http://www.example.com:8969/backlog/Setup.action へアクセス

とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

mod_rewriteによるhttp→https強制変更

設定したいディレクトリを指定して、apacheのconfに以下を記述。

[code]RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L][/code]

とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...