メイン

2007年05月26日

Linux その後(2)

 さっそく Cent の本採用インストールを始めてみました。昨日は

●32bit で行こう

と考えていましたが,色々と WEB で調べたり考えたりした結果,ファイルサイズが巨大なものでも扱える方向を重視して,

●やはり 64bit を選択

しました。色々とテストした結果,当社のように特定とは言え,色々な業種のお客さま(製造業,小売り,リサイクル,観光事業)をまとめてサポートさせていただいているので,少々の性能差は目をつぶり,有用性を重視しました。64bit の???な点については

●Cent 頑張れ!

って感じです。でも,テストインストールした結果では,64bit でも好調です。本当にシビアな性能を要求されるお客さまに出会った時には,回線を始めとしてハウジングなどでチューニングしていくことにしましょう。

 また,ディスクまわりでは当社は ARAID99 を採用しているので,株式会社MTG(エムティージー)の松永社長,技術の水井さんには大変お世話になってます。
 一応,ネイティブに SATA を使用すると 70MB/s でていましたが,ARAID99 2000 に接続すると 50MB/s となってしまいました。しかし,これでも「よし」としよう。HD を Hitachi にするか Seagate にするか,の問題でも微妙に容量が大きい Hitachi より,ファームウェアが特殊でも 1.5Gb/s にジャンパで落とせる Seagate をチョイスしました。HD が壊れた時に,微妙な容量差で HD を探し回らなければならなくなると大変ですもんね。また ARAID 自身が 1.5Gb/s(SATA-1)なので,HD が 3Gb/s のものより安定する傾向にある,と言う技術の水井さんを信じて!ちなみに採用した HD は Seagate ST3160815AS です。

続きを読む "Linux その後(2)" »

2007年05月25日

Linux その後

 2006年末より正月にかけて,当社サーバーをMacOSXからFedoraCore6(64bit)に入れ替え,色々と喜んだり苦しんだりしたが,約半年の稼働で判ってきたことを記そう。

(1)環境
Intel DG965RY
Core2Duo E6300
512M×2

(2)わかったこと
・インストール時に all-generic-ide iqrpoll オプションをつけないと駄目だと言ったが,これは 64bit 環境の話で,32bit の場合はall-generic-ide のみで良い
・DG965RY の場合,BIOS で Disk モードを Legacy ではなく Standard(Enhance?)にしないと,デバイスが hda となり,秒4MBくらしの性能しか出ない。適切に設定すると sda となって 70MB/秒くらいの性能になる(もちろんHDの性能による)
・pop-before-smtp は,FC6 では正常に動作しない

(3)自分メモ
 ユーザー数が多いので,apache,Dovecot,Postfixの待ち受けプロセスを100くらいに設定しないと待たされる
 apache で /etc/httpd/conf.d 中に security.conf が入っていると,apache が突然落ちることがある

 で,FedoraのMLを読んでいくうちに,どうやら業務で使用するのは Fedora→RedHat→CentOSとなって,Cent が良いみたい。そこで,順次 Cent に入れ替えていくことにする。またトラブらなければ良いのだが。
 また,MySQL も64bit より 32bit の方が性能が良さそう(http://www.thinkit.co.jp/free/article/0603/10/5/)だし,くわえて FC6 も 64bit は Yum も不審な動きをしたり,体感的に???と言う感じのもたつきもあるので,今回は 32bit で行く事にする。
 →こんなことも書いてありました(http://www.hyde-tech.com/HideWeb/fedora_core_6_installation_notes.html

 やれやれ・・・

(みなさん思われることでしょうけど,ソフト開発もしなければならないし,基礎研究や実験もしなければならないし,体がふたつあるか,自分だけ一日が30時間くらいあると嬉しいなぁ・・・おーい,ドラえも〜ん!!!)

2007年03月18日

RealBasic(2006-2007)+MySQL

RealBasic(2006-2007) でネットワーク上にあるサーバーの MySQL とデータベースプラグインを使ったが,大変困った。

【発生した問題】
(1)MySQL へのデータの登録が正しく行われない(文字コードが狂う)。
(2)正しく書き込まれたデータを読み込んだ時に RealBasic 側で正しく表示されない
 → UTF8 としてデータを読み込んでくれない?

【MySQL バージョン】
mysql Ver 14.12 Distrib 5.0.27, for redhat-linux-gnu (x86_64) using readline 5.0

【解決した方法】
(1)は my.cnf を以下のように設定
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set = utf8
skip-character-set-client-handshake
[mysql.server]
user=mysql
basedir=/var/lib
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
default-character-set = utf8
[client]
default-character-set=utf8

さらに RealBasic で db.connect した後に,以下の SQL コマンドを送信。

db.SQLExecute ("SET NAMES'utf8'; SET CHARACTER SET 'utf8'; ")

(2)は,読み込んだ文字列データを常に UTF-8 としてそのままパスさせた
文字列変数 = DefineEncoding(レコードセット.Field("フィールド名").StringValue, Encodings.UTF8)

【参考にしたページ】
http://rbgazette.com/?p=193
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_38

【感想】
(1)は比較的早く判ったが,困ったのは(2)でした。RealBasic は UTF8 標準だと言う頭があったので,なかなか解決できなかった。
 とりあえず考えられる事をてんこ盛りでやったって感じであまりスマートではないですね。

2007年02月22日

Windowsの終了に時間がかかる(設定を保存しています)

http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=1B286E6D-8912-4E18-B570-42470E2F3582

2007年01月07日

FedoraCore6 よもやま

 私もインターネットの世界で情報提供をされているたくさんの人々に助けられたので,少しでもご恩返しをさせていただきます。誰かが,このエントリーを Google か何かで発見して「やった!これだ!」と役に立てると良いなぁ。

●FedoraCore6 実行環境
・Intel マザー DG965RY
・Core2Duo E6300 + 512MB×2 DuallChanel
・ARAID2000 + 160GB HDD
(株式会社MTG の松永社長,大変お世話になりました)

●インストール時のコマンド
linux all-generic-ide irqpoll
・all-generic-ide:これをやらないと ICH8R のドライバを聞いてきて,先に進みません。IDE のポートマップの関係かも
・irqpoll:これをやらないとインストール中に何かのハードウェアで引っかかります

●POPbeforeSMTP
・yum install pop-before-smtp:pop-before-smtp をインストール
・/etc/pop-before-smtp-conf.pl を書き換える
FC6 でPostfix+dovecot の組み合わせの場合,以下のようにしました。(変更点のみ)
------------------
# Set $debug to output some extra log messages (if logging is enabled).
$debug = 1;
$logto = '/var/log/pop-before-smtp'; ←自身のログファイル名を指定

# Override the DB hash file we will create/update (".db" gets appended).
$dbfile = '/etc/postfix/pop-before-smtp';←IP を記録するファイル名を指定

# A 30-minute grace period before the IP address is expired.
$grace = 30*60;←30分でリフレッシュする

# Set the log file we will watch for pop3d/imapd records.
$file_tail{'name'} = '/var/log/maillog';←POPを取得するログファイル名

# For Dovecot POP3/IMAP when using syslog.←このブロックの注釈を取り外し,Dovecot 用の設定にする
$pat = '^[LOGTIME] ?S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
'Login: .*? (?:?[|rip=)[:f]*(?d+?.?d+?.?d+?.?d+)[],]';
$out_pat = '^[LOGTIME] ?S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
'Disconnected.*? (?:?[|rip=)[:f]*(?d+?.?d+?.?d+?.?d+)[],]';

↓このブロックのCUTを取り外し,Postfix で Berkeley を使用する設定にする
#====================== Postfix BerkeleyDB =======================START=
# If you comment-out (or remove) the two surrounding =cut lines, we'll use
# BerkeleyDB instead of DB_File.

use BerkeleyDB;

#$mynet_func = ?&mynet_postfix; # Use the default
$tie_func = ?&tie_BerkeleyDB;
$sync_func = ?&sync_BerkeleyDB;
$flock = 0;

my $dbh;

# We must tie the global %db using the global $dbfile. Also sets $dbh for
# our sync function.
sub tie_BerkeleyDB
{
$dbh = tie %db,'BerkeleyDB::Hash',-Filename=>"$dbfile.db",-Flags=>DB_CREATE
or die "$0: cannot dbopen $dbfile: $!?n";
}

sub sync_BerkeleyDB
{
$dbh->db_sync and die "$0: sync $dbfile: $!?n";
}
#====================== Postfix BerkeleyDB =========================END=
------------------
・FC4 の場合,標準の Dovecot を使う場合,
$pat = '^(... .. ..:..:..) ?S+ (?:imap|pop3)-login: ' .
'Login: ?S+ ?[?:?:ffff?:(?d+?.?d+?.?d+?.?d+)?]';
と変更します。(maillog に記録される形式が異なるため)
・POPbeforeSMTP が使用する perl モジュールをインストール
# perl -MCPAN -e shell
cpan> install Time::HiRes
cpan> install File::Tail
cpan> install Date::Parse
cpan> install Net::Netmask
cpan> install BerkeleyDB
↑インストールする前に,既に組み込まれているか,確かめた方が良いかも(以下のコマンドを打ち込んでください)。
cpan> m Time::HiRes
cpan> m File::Tail
cpan> m Date::Parse
cpan> m Net::Netmask
cpan> m BerkeleyDB
・Postfix の main.cf の smtpd_recipient_restrictions に以下を追加します
check_client_access hash:/etc/postfix/pop-before-smtp
・POPbeforeSMTP の起動
/etc/init.d/pop-before-smtp start
・自動起動するようになっているか,確認
chkconfig --list|grep pop
なっていなかったら
chkconfig --lebel 3 pop-before-smtp on
としておきます(level は環境によって変更してください)