- PR -

最も低負荷でSEOにも配慮した掲示板システム

投稿者投稿内容
YS
会議室デビュー日: 2007/02/28
投稿数: 3
投稿日時: 2007-02-28 03:48
今、個人的な掲示板サイトを運営しているのでですが、レンタルサーバに負荷をかけすぎているようなので、専用サーバを借りてそこに低負荷な掲示板サイトを置きたいのです。
今、利用している掲示板CGIはフリーソースの物を使っているのですが、使い勝手が悪いので、JAVAで新たに組み上げるつもりです。

質問1)
そこで質問なんですが、最も低負荷な掲示板システムを設計するとしたら、ログファイル(カキコミされたデータ)は、DBを通さないで、単純にテキストファイルやHTMLファイルにしたほうがいいのでしょうか?
私が素人なりに色々調べてみると、2CH等ではDBを使うリソースがもったいないので使ってないようです。

質問2)
全文検索のレスポンスタイムとサーバ負荷とSEO、全てに配慮した設計を考えるとどういう方法がベターなんでしょうか?
DBを使わない前提でいくと、一番気になっているのはSEO的にはテキストファイルよりHTMLファイルをスレッドごとに生成したほうがいいのでしょうか?

質問3)
今使っているperlの掲示板はデータが少ないころは良かったのですが、1つのテキストファイルに延々とレスデータを追加していく仕様で、全文検索すると、何万行もgrepするので重くて大変なことになってしまいました。
もし1スレ1ファイル前提でいくと全文検索は、スレごとに1ファイル書き出して、Luceneを実装してこれでインデクシングして検索に対応しようとおもっています。
しかし、スレッドごとにファイル生成すると何万ファイルにもなるとおもいますが、問題ないのでしょうか?


また予想されるPV現在は一日数万PVですみますが、のちのちは同じPVの規模の掲示板を数個おく予定なので、1日十万PV〜百万PV程を考えております。
一番多いリクエストはスレッドの参照、次に全文検索、次にカキコミです。
貧乏なのでサーバは最初は1台しか借りれません。(オーバーヘッドが限界こしたら借りる予定です)

どうかご教授の程よろしくお願いいたします。


[ メッセージ編集済み 編集者: YS 編集日時 2007-02-28 04:12 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-28 09:49
引用:

YSさんの書き込み (2007-02-28 03:48) より:

質問1)
そこで質問なんですが、最も低負荷な掲示板システムを設計するとしたら、ログファイル(カキコミされたデータ)は、DBを通さないで、単純にテキストファイルやHTMLファイルにしたほうがいいのでしょうか?
私が素人なりに色々調べてみると、2CH等ではDBを使うリソースがもったいないので使ってないようです。


書き込みデータが膨大になった状態で、検索機能を使った時のことを想定してみてください。

引用:

質問2)
全文検索のレスポンスタイムとサーバ負荷とSEO、全てに配慮した設計を考えるとどういう方法がベターなんでしょうか?
DBを使わない前提でいくと、一番気になっているのはSEO的にはテキストファイルよりHTMLファイルをスレッドごとに生成したほうがいいのでしょうか?


HTML ファイル生成の負荷を考慮してください。

負荷を考えるなら、クロール bot を騙すだけで良いので、偽装してしまえば良いです。
しかし、通報されると | バレると、SEO スパムとしてペナルティを喰らう可能性があります。

引用:

質問3)
今使っているperlの掲示板はデータが少ないころは良かったのですが、1つのテキストファイルに延々とレスデータを追加していく仕様で、全文検索すると、何万行もgrepするので重くて大変なことになってしまいました。
もし1スレ1ファイル前提でいくと全文検索は、スレごとに1ファイル書き出して、Luceneを実装してこれでインデクシングして検索に対応しようとおもっています。
しかし、スレッドごとにファイル生成すると何万ファイルにもなるとおもいますが、問題ないのでしょうか?


インデックス化するくらいなら... DBMS を使いましょう... と思いました。

引用:

また予想されるPV現在は一日数万PVですみますが、のちのちは同じPVの規模の掲示板を数個おく予定なので、1日十万PV〜百万PV程を考えております。


個人にしては相当な規模だと思います。(私のトコとは大違いで羨ましいですねw)
将来を見据えた選択を視野に入れましょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ひら
ぬし
会議室デビュー日: 2005/03/04
投稿数: 260
投稿日時: 2007-02-28 09:52
引用:

YSさんの書き込み (2007-02-28 03:48) より:
また予想されるPV現在は一日数万PVですみますが、


!!!
万単位PV達成おめでとうございます。
Javaで1から組みあげても良いのですが、負荷軽減だけを考えるなら
フリーのPHP掲示板プログラム+MySQLが良いのではないかと。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-02-28 10:45
検索に重きを置くのでしたら DB を使うよりも Lucene や Google が賢いし早いですね。

一番手軽なのはファイルに書き出して、インデックスは自前でもたずに Google に任せてしまう方法ではないでしょうか。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-02-28 12:10
DBを使わないとなるとファイルI/Oを自前で管理することになりますよね。
データの検索性を考えて自前でインデックスをつける必要もあるでしょう。
まさにその部分に特化して進化してきたRDBMSを自力で超えられる技術を
お持ちであるのならDBなんか使わずに自力実装すればよいのではないでしょうか。

私は専門家集団がよってたかって研究して築き上げたものを個人で
超える能力なんか持ち合わせていないので、ありがたくRDBMSを利用させてもらっています。

検索エンジンはSENNAというのも手ですね。
http://qwik.jp/senna/FrontPageJ.html
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-02-28 12:20
小中規模のシステムで検索機能を実現するのに RDBMS を使うか、検索エンジンを使うかどうかは宗教みたいなものでどれが正しい、ってことはないかもしれません。

ただ、検索など、情報を引き出すことに特化して考えると RDBMS は重く、ライセンスコストも高く付くので RDBMS にはトランザクションだけをまかせてあとは検索エンジンに任せようという「データベースオフローディング」なんて考え方もあります。

Lucene なんかを使えば特別な実装をしなくても高速な検索を実現できますのでいいんじゃないでしょうか。
掲示板ではそもそもデータに "リレーション" がほとんどありませんし。

また検索エンジンを使うと lemmatization や synonym の処理が簡単に実現できるのも魅力的です。
たとえば "classes" と入力して "class" をヒットさせたり、 "JSP" と入力して "Java Server Pages" をヒットさせたり、といった処理です。

Lucene を使った場合のサイジングについては知りませんが、もちろん RDBMS で管理するよりはディスクスペースを必要とするでしょうね。たぶん実データの 3〜10倍程度のスペースを占有するのではないでしょうか。
スレッド毎にファイルを作ること自体は問題ないと思います。

[ メッセージ編集済み 編集者: インギ 編集日時 2007-02-28 12:48 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-02-28 13:35
ページビューだけじゃサイトの特性ってわかりませんよね。
参照と書き込みの比率によって、何が必要か変わってきます。
また、リアルタイム性って必要でしょうか。

私だったらRDBMSを使いますが、リアルタイム性を求めない場合、

1.参照系DBと更新系DBを分ける
2.書き込みは更新系DBに入れる
3.読み込みは参照系DBに入れる
4.別スレッド・別プロセス等で、インデックス作成+参照系への移動を行う

という感じで行うかなと思います。

特に4あたりの負荷が大きそうなので、
優先度を調整すれば、それなりに低負荷でいけそうです。
参照系に関しては、メモリキャッシュを間にかませるのもありです。
ひら
ぬし
会議室デビュー日: 2005/03/04
投稿数: 260
投稿日時: 2007-02-28 14:46
「SEOにも配慮した」というところにポイントがあるのではないでしょうか?

スキルアップ/キャリアアップ(JOB@IT)