アーカイブ

‘dat落ち’ カテゴリーのアーカイブ

ファイル移動中

2009 年 6 月 7 日 コメントはありません

scp でファイル転送するのが一番簡単そうだったので、
ただいま転送中・・・。

カテゴリー: dat落ち, サーバー, 備忘録, 管理 タグ:

プログラムが書けるようになるには?

2009 年 5 月 16 日 コメントはありません

ハードディスクがギリギリになったのは、ちょっと理由があって、
2ちゃんねる(N.T.Technology)の有料サービス● のお試し版が株式会社ゼロ運営のゲーム
ニダークエスト2で貰えたため、それを使って過去ログを集めてました。

ざっと、現在までにニュース速報VIPやPCゲーム板など数十万スレッドが収集でき、
当分、読む物には困りそうもありません。

# 前にもこんな事書いた気がする。

file_edit

これが勉強がてらC言語で書いたディレクトリリストと datファイルの先頭4文字を判断するプログラム。
CodeGearのサイトにあったリファレンスを見つつ作ってみたんだけども、意外と簡単に動くものです。

こうやって少しづつ作っていくことで、段々と作れる物が増えて行ければいいなぁ。
PHPは、関数が豊富なのと、実用的というか、直ぐ使えるような関数が一杯なので、
それと較べると、C言語は結構しんどいです。

「PHPポケットリファレンス」みたいな本がC言語にも有ればいいのになぁ。
「プログラミング言語C」の第2版は読んでみましたが、結構大変。

構造体とかが使えるようになれば、また一段と作れる物が増えるんだろうなぁ。

カテゴリー: dat落ち, プログラム, 備忘録 タグ:

ストレージが限界です…。

2009 年 5 月 14 日 コメントはありません

過去ログ用のストレージが限界近いです…。

46G   41G  2.7G  94% /dat

ライブスレッドのクローリングは平常通り運行しますが、
Express5800/110Ge で取得した過去ログの追加は、現在見合わせ中です。

カテゴリー: dat落ち, サーバー, 備忘録, 管理 タグ:

妖精さん召還

2009 年 4 月 26 日 コメントはありません

クローラーのリブートを掛けるシェルで cd していなかったために、実際に動作していなかった。
(´・ω・`)

今度は、ちゃんと Cron で動作するのを確認したから、きっと大丈夫。
リブートする妖精さん、後は頼んだよ。

カテゴリー: dat落ち, サーバー, 備忘録, 管理 タグ:

落ちた

2009 年 4 月 20 日 コメントはありません

また、クローラーが落ちていた。
クローラーを毎日一旦 kill するようにした。

カテゴリー: dat落ち, サーバー, 備忘録, 管理 タグ:

ダメダッタ

2009 年 4 月 12 日 コメントはありません

http://blog.yuhisa.com/archives/339 の件について

配列があふれてプロセス有るけど全く処理が動いていない状態だった。
オワタ\(^o^)/

15000 件のレコードが貯まったら一旦破棄するようにした。

カテゴリー: dat落ち タグ:

効果覿面

2009 年 4 月 11 日 コメントはありません

やったね、これは成功!

localhost-cpu-month

http://blog.yuhisa.com/archives/303 から1週間。
2日目あたりから安定して iowait が激減した。

ちなみに、配列の掃除は全くしてないんだよね。
内部的にどうなってるんだろ?

カテゴリー: dat落ち, 備忘録, 管理 タグ:

iowait

2009 年 4 月 2 日 コメントはありません

うーん、スレッド管理用の配列を作って見たのだけれど、
効果の程は劇的に、とってもとっても、すんげぇという感じでもないぁな
localhost-cpu-week

確かに減ったは減ったんだけど、他に何か足を引っぱってる所があるのかなぁ・・・
同時間にがっくしメニューの LoadFactor を 1200 に変えたけどディスクは違うし、
もしかしたら、サーバー名を引く部分が影響しているのだろうか?

カテゴリー: dat落ち, サーバー, 備忘録, 管理 タグ:

ジャーナルファイル

2009 年 3 月 30 日 コメントはありません

クローラーの中にある行数をカウントする部分でIOを食いつぶしてるので
そろそろジャーナルファイルを作って管理しようと思う。

単一ファイルで書き換えた後に閉じなくても反映されてるんだったっけかなぁ?
ちょっと試してみよう。

管理方式はどうしようかなぁ?

カテゴリー: dat落ち, サーバー, 備忘録, 管理 タグ:

PHPの気を付けたいところ

2009 年 3 月 9 日 コメントはありません

ファイルの中身を配列として読み込む file という便利関数があるんですが、
これにはちょっと使い時があります。

PHP には memory_limit という設定があり、この設定値を超えると
処理が出来ないため、エラーになってしまいます。

実は file 関数とこの設定値は結構リンクしていて、memory_limit をバケツに例えると
バケツに対してバケツの容量以下の水を扱うには良いのですが、
バケツに対して、25mプール一杯の水を注ごうとするとあふれてしまうのと同じように下記のエラーになってしまいます。
Allowed memory size of xxx bytes exhausted (tried to allocate xxx bytes)

つまり、あまりにも大きいデータを読み込む時に file 関数は向いていないのです。

こういった場合、どうしたらいいのか?
答えは簡単で、 fopen でファイルを開いて fgets すれば良いだけです。

fopen はファイルポインタですから、使用した時点ではファイルの内容は読み込みません。
fgets を使用してはじめて読み込むわけですが、  fgets は指定バイト数もしくはEOFまでの読み込みであり、
巨大なデータでも行端で切り刻んで読み込むことが出来るため、前述のようなエラーにはならなかったりします。

file_get_contents も file と同じようなものと考えて組んでいかないと変なところでエラーが出てしまうので、
使い所には注意するべきですね。

あと、 PHP は一度スカラー変数として定義したものは、スカラー変数としてしか使えないので、

<?
$hoge = 1234;

$hoge[0] = 5678;
?>

というようなものを書くと Cannot use a scalar value as an array というエラーになりますよん。

カテゴリー: dat落ち, プログラム, 備忘録 タグ: