read.cgi再開発スレ
■ このスレッドは過去ログ倉庫に格納されています
稼働させると問題が多発しているread.cgiを再開発等を話しあうスレッド
です。
アイデア等がありましたらこちらへどうぞ #include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf(
"Content-Type: text/html; charset=Shift_JIS\n\n"
"<html><head><title>もうずっと人大杉</title></head>"
"<body><h1>もうずっと人大杉</h1></body></html>\n"
);
return EXIT_SUCCESS;
} 昔、UNIX板の有志が書いてたread.cgiのソースって、今も公開されてるんだっけ? 古かったと思う、>45-46
最新のは未公開、多分、 とりあえずborlandのコンパイラを落として、暇を見つけつつ
基本構造のおさらいから始めてて、ふと思った。
これ、それなりの形が作れるようになった頃には
とっくに開発終了してるんじゃなかろうか。。
頑張れ、俺。 >>16 で言及した、
mmap()を使用しないread.cgiをgame6サーバに実験的に入れてみた。
これでしばらく実験してみるということで。 32-bit 環境と 64-bit 環境での違いっていっても,変数サイズの違いぐらいで,
そんなに変わるわけでもないけど.って,それがこける原因じゃないよな......?
long とかポインタのサイズに依存するような処理って入ってたかな......? 20日以上動いていたgame6が、read.cgiを上げたら半日で死にました。
mmap()ではなかったと。
ということで、
live8(read.cgiを動かしている)とcomic4(携帯の負荷に耐えている)で実績のある、
以下の設定を追加してみた。
(従来)
<IfModule prefork.c>
StartServers 64
MinSpareServers 5
MaxSpareServers 32
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 0
</IfModule>
(現在)
<IfModule prefork.c>
StartServers 64
MinSpareServers 5
MaxSpareServers 32
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 100000 <= 変更
MaxMemFree 2048 <= 追加
</IfModule> Re: huge memory leak in 2.0.x
http://www.mail-archive.com/dev@httpd.apache.org/msg21175.html
ということで,2.0.x には CGI を呼んだ際にメモリリークする問題があるそうで,
とりあえずは MaxRequestsPerChild / MaxMemFree での対処は
妥当なところなんでしょうけど,AMD64 以外ではこけるというところまでは
行ってなかったんですよね......? >>53
どうもです。CGIを呼ぶとメモリリークするのですか。
かつてのumaサーバ(Xeon 2.4G dual/メモリ2G/FreeBSD 4.x)では特に問題なかったですね。
FreeBSD 4.xと5.xの違いか、amd64とi386の違いか。 ということで、read.cgiの現在のソースを
出来る範囲でもうすこしまじめにあたってみるか。 …ということで、いったん退却。
【Project peko】2ch特化型サーバ構築作戦 Part13
http://qb5.2ch.net/test/read.cgi/operate/1085678587/963
963 名前:root ★[sage] 投稿日:04/06/18 11:54 ID:???
ということで、リモートからデバッガに落とせない状態なので、
いったんgame6のread.cgiを止めます。 既出?
ttp://qb5.2ch.net/test/read.cgi/operate/1081010089/631 >>57
hardをどうにかする、というのは基本的にあきらめたみたいだよ。
(これから新規に買うときは発注条件をなんとかする等で気をつけて欲しいけどね)
OSもどうなんだろう?live8は今の所問題ないし。。。
今は、opteron・apache・OS等の禁忌事項にread.cgiの処理が当てはまってるかどうかとか
そういうのを調べてみる時期なんじゃないのかなぁ??
(ソフトのことはよくわかりませんが) >>58
ていうか、現状何が問題なんでしょ。
read.cgiに限らず。 >>59
わかる人が見ないことにはそのへんすらわからないだろうね。
ちなみに漏れは見てもわからんのは確実。がはは。 オープンソースで改良作業が行われていた当時の read.cgi ソースはこちら.
http://gedoh.org/aki/2ch/current/bbs/
どこかで地雷を踏んでるのかねぇ...... 今まで「これをやると落ちる or 落ちる確率が間違いなくアップする」ものとしては、
・read.cgi
・fox.cgi
かなと。 つーか、言語なんすか?perl?
Cなら協力できそうにないなぁ。。 >61
うがー。malloc/free/memmset/memcpy/memcmp/memchrが。 もうずっと人大杉 へ飛ばされる板のスレを見たいのですけど、
.datファイルのレスX番から50個のレスを読み込むにはどうしたらいいのでしょうか?
全部読み込まないと駄目なのですか?
なーんで負荷が高いsports8とかで問題無く動いているread.cgiが
game6になった途端くたばるん?
最新型マザーボードが狂ってるんか? 公開版ソースでは MAP_PRIVATE で mmap() してるみたいですが......
見たところ,マッピングされた領域に書き込みを行っていないようなので,
MAP_SHARED でいいのではないかと.mmap() 本来の仕様では
マッピングされた領域に書き込みを行わない限り MAP_SHARED も
MAP_PRIVATE も同じ挙動を示すはずですが,このあたりに地雷があるとすると
どうなるかわからないので.ちなみに,Apache(APR) では MAP_SHARED
で mmap() が実行されます.
>>69 ふむ,予想に反して mmap() が意外に遅いと......で,mmap() に
改善の余地があるのかないのか......という話のようですね.
とはいえ,カーネル時間の消費は mmap() の方が圧倒的に少ないので,
単一のプロセスをぶん回すような用途ならともかく,多数のプロセスを
同時実行するような用途ならその状況でも mmap() に利があるかとは思いますが. スレ立て時に強制sageを指定できるようにきぼんぬ。
そうしてread.cgi ver8.00はこれで決まり。 自分で書いてこんなのどうですかって持ってこないと話にならんでしょ 大体それreadじゃなくってbbsの方の範疇だし。 ちょっとCをかじってたので協力できたら…
なんて考えていましたがはっきりいってわかんね〜(笑
mmap()って何なんでしょうか?
mallocとかまでしか着いていけませんでした
http://www.ebimemo.net/diary/?date=200303
mmap()の意味も見つけられない人は、「ちょっとCをかじってた」とは言わない
ttp://www.google.com/search?lr=lang_ja&ie=Shift_JIS&oe=Shift_JIS&q=mmap ていうかこの期に及んで
「必要なのはC言語の知識というよりは高負荷環境を捌く知恵と経験」
ということに気づけなかった時点でイラネ 前live5鯖でやってた
h ttp://鯖.2ch.net/板/read/dat.html
例)http://live5.2ch.net/livetbs/read/1074855449.html
あれはどうなった? >>78
C版の開発はチューン次第ではメモリ不足の解消にもつながるでしょう
一般的に
size(perllccバイナリ)>>size(Cコードバイナリ)
だし ちょいとネタ振り.
mod_cgidso http://jbbs.livedoor.com/bbs/read.cgi/computer/2095/1051177958/129
外部 CGI を実行ファイルではなく共有オブジェクトで作成し,fork(),exec() の
オーバヘッドを解消するもの.CGI そのものをモジュール化すると,
プログラム変更のたびにモジュール入れ替えのため Apache を再起動しなければ
ならないが,これなら単に外部 CGI の共有オブジェクトの入れ替えだけで済む.
で,以前ソースをうpしていた鯖は現在亡くなってしまっていますが,
mod_cgidso.c (モジュールソース)
dso-example.c (これを利用した共有オブジェクト型 CGI のサンプル)
read.tar.bz2 (>>61 のソースを基にこのモジュールに対応させたもの)
どこか適当な場所があればうpします...... >>82
お、そっか、これ、改めていいかも。
どこかにうpしてほしいなと。 >>83 とりあえず臨時自宅鯖でうpしますた.
http://203.205.158.203/jikken/mod_cgidso.c (モジュールソース)
http://203.205.158.203/jikken/dso-example.c (これを利用した共有オブジェクト型 CGI のサンプル)
http://203.205.158.203/jikken/read.tar.bz2 (>>61 のソースを基にこのモジュールに対応させたもの)
DHCP の上 Dynamic DNS 使うほど本格運用するつもりもないんで,
IP 変わったりした際はご容赦を...... >>84
ping とおらなくて、port 80も応答しないっす。 【Project peko】スレの方は OS の話が進んでいるようなので,こちらで.
http://qb5.2ch.net/test/read.cgi/operate/1087666806/914n
>で、どうも、プロセスが多く起動・終了されるマシンで、落ちる可能性が上がるように見える。
ということなら,mod_cgidso で何とかなるのかな,という気もしますが...... aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa html化されているログをread.cgiで読めることは
もともと保証されていないのだから「仕様」でしょう read.cgi ver7.31p (04/10/29) >>94
live8 (AMD64)のread.cgiを7.31pに更新しました。
これから memories 上の各バーチャルホストのも更新します。 ■掲示板に戻る■ 関連ページ 全部 1- 最新50 [PR] 新潟ガンバレ. [PR] sports2
read.cgi ver6.01p (02/04/12)
(つД`) 右上の広告が激しくウザイです
終わったら早く消してください糞野郎(^^v live8 と memories の read.cgi を変えました。 というわけでこうなるとeq/eq2のピーク時の負荷がちと心配なんで、
やばければまたごそごそしてみるか。 >109
×糞運営側が
○糞管理人が
他の人はタッチできませーん。 地震Wiki(eq2.maido3.com)は、何とかもちそうかな。
チューニングがよく効いている模様。
banana618% uptime
6:41AM up 3 days, 1:23, 1 user, load averages: 8.06, 12.48, 11.03 ver7.33、ネットスケープ4.7で表示おかしいぞ 追加した部分がおかしいのかなーと思ってhtmlのソース見てみたけど
よーわからんかったわー 広告消して
style=float:left;
style=float:right;
を削るとか良さげ <div style='width:100%; border-bottom:1px solid #888;'>
<span style=float:right;>[PR] (省略) [PR] </span>
<a href="../../../../operate/">■掲示板に戻る■ (省略) 最新50</a>
</div>
こうしる。 ↑<span style=float:left;>を消して、広告(<span style=float:right;>)を先にする
ver7.32p、>112と同じくネスケ4.7で不具合あるみたいです。
マウス左ボタンおしっぱで範囲選択、色が反転するはずのあれ、、が、
なんでか、できません。
(ver7.33pでは、これはできるみたいです)
かといって、どこをどうしていいのかはわかりませんけど、
一応、報告まで。 floatにする理由が見あたらないかも♪
見た目がどのようになって欲しいかを画像で示して貰えたら、広告枠のHTMLパーツを描いてみますけれども。。。 Mac版IE5.17でも表示おかしいです
(赤字のタイトルがヘンな位置に)
マカですみません というか,float 要素は width 指定が必須ではなかったでしたっけ?
まぁ,どちらにせよ古いブラウザだと CSS 対応がちゃんとしてなかったりしますが. うわーんよくわからないので、htmlで適当につくってあげてもらえると分かりやすいですー。
WinIEでしかみれないHTMLはやめてくれ。
W3Cに準拠したブラウザだと表示が崩れるんだ。
酷いページはページ全体が1行に収まって最悪に見難いんだ。 ネスケでも、となるとCSSは使えないなぁ。
右寄せを諦めるか、TABLEでレイアウトするしかないかも。 <font size=+1 color=red style="clear:both;">たいとる</font>
~~~~~~~~~~~~~~~~
追加でいいんじゃ こちらも,>>117 ので一応ネスケ 4.78,Mozilla 1.7.3 で正常に表示されます.
ただ......やはり CSS としては float 要素には width は必須のようで
http://www.w3.org/TR/REC-CSS2/visuren.html#floats
しかし,どれほどの width がちょうどいいのかってのは難しいところですね.
個別の PR 文ごとに適当に指定するよりしょうがないですかね...... というか、何をどーしたのかがよーわかりませんが。
どなたか教えて。 つうかNN4.7のことなんかわすれろ
それかテーブル使え >>130
なるほど・・・
[PR] 新潟ガンバレ. [PR]
なんでガンガレじゃないんだろw CSS使って各種UAで表示確認するより
TABLEにしたほうが手間かからないような
<table><tr><td>■掲示板に戻る■</a> <!--中略--> <a href=l50>最新50</a><td align=right>[PR] <a href=http://eq.maido3.com/>新潟ガンバレ!</a> [PR]</table> [PR]〜[PR]は単純に改行した方がいいんじゃないの?
現状だと解像度800×600の環境等ではレス数が多くなると
表示が崩れてしまう訳で
CSSで対処しようにも、PR文が長いとどうしようもない訳で じゃあこれで
<a href="../../../../operate/">■掲示板に戻る■</a> <!--中略--> <a href=l50>最新50</a><div align=right>[PR] <a href=http://eq.maido3.com/>新潟ガンバレ!</a> [PR]</div> そもそもがなんちゃってHTMLだから対応するのが難儀ですよねぇ。。。
個人的には>>134さんと同じ意見ですぅ。(ひとまず無難に<p></p>で括っておくと良いかと)
♪いわゆる「広告枠」の扱いってHTML的にも、どの要素に当てはめるかで議論になりますから・・・(苦笑) <div style='width:100%; border-bottom:1px solid #888;'>
<a href="../../../../operate/">■掲示板に戻る■</a> <!--中略--> <a href=l50>最新50</a><br>
[PR] <a href=http://eq.maido3.com/>新潟ガンバレ!</a> [PR]
</div>
これじゃだめ? ぶっちゃけ、Netscape Communicator 4.xを無視した開発をしてほしい。
Netscape Communicator 4.xを根絶やしにするために、、 今のバージョン、MacOS9.2/IEで見ると、まともに見れたり見れなかったり…
って似たような報告山盛りでしたか >>139
あほか。
それだけ無視しても意味が無い。(良く見えていないのはNC4.7固有じゃ無いから)
一番良いのは>>124。まあIE以外は見れなくても良いってんならそれはそれでも良いけど。
どーせ専ブラだし。 ■ このスレッドは過去ログ倉庫に格納されています