■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50

【2ちゃんねるビューア】 巡回機能の巻。Part3

327 :ななむす ◆nnmm.69A :02/03/25 02:16 ID:???
read.cgi呼び出しのチェックの話。

単純に、たとえば1分以内の再呼び出しを弾くためには、1分間分のアクセスリストを
保持して、そのファイルをオープンして検索かけるわけですが、これは鯖単位とすると。。

1分間の呼び出し分だけファイルオープン数が増える(read)。
その何分の1かファイルオープン数が増える(write)。
わけで、高負荷なときはすさまじく重くなり、低負荷の時はあんまり意味のない機能かと。

328 :Dream ★ :02/03/25 02:19 ID:???
夜勤さんが言ってらしたのですが
「回線帯域も、サーバも、予算が潤沢にあればすぐにも解決」
する問題ですよね?実際。

そういう解決法ではない解決法として、じゃあ、monazillaとかそのような
比較的意志の疎通がとりやすい緩い結束
(なのかどうか、私自身は加わっていないのでわかりませんけど憶測で)
に、今後のサーバの「転送量とサーバ負荷のトレードオフ」のコントロールを
ゆだねられないとしたら、どのようにしたらよいのかを、ご提案いただきたいのです。

329 :ななむす ◆nnmm.69A :02/03/25 02:19 ID:???
>>326
たぶん、押し切って勝てるかどうかの問題かな。。。
夜勤さんやひろゆきさんたちの趣味の問題でもあるか。

みんな、理解はしていると思いますよ。
ただ、苦労して付いていく人がどれだけいるか、
2ちゃん住民の2ちゃんに対するコミットが変わりやしないか。。。

住民減って大歓迎なら、やっちゃってもいいと思う(笑

330 :Dream ★ :02/03/25 02:21 ID:???
>>327
2チャンネル専用プラグインを開発して、push型に更新するというのはどうでしょう(妄想)

331 :ななむす ◆nnmm.69A :02/03/25 02:23 ID:???
>>330
あの前提崩していいなら、ありだと思いますよ。

# でも、それなら P2P型プロジェクトの類の方が良いと思いますが。。。

332 :名無しさん@お腹いっぱい。 :02/03/25 02:24 ID:???
横やりすまんが、ほんとはツール使われるのイヤなんじゃないの?
そうじゃなかったらこんな規制しないもん。いっそのことツール禁止にすれば?
反発あるかもしれんが、もともとツールなんてなかったんだし。どうよ?

333 :Dream ★ :02/03/25 02:27 ID:???
>>331
P2Pのタイムラグとか、解決できるんでしょうかね?
各ユーザ間の回線がどんどん太くなっていったら、あり得る話ですよね。

FTTHとかB-Flets100Mとか使って2ちゃん運営、というような話も誰かしてましたけど。
昔。
(みんな妄想です)

334 :Dream ★ :02/03/25 02:28 ID:???
>>332
ツール使われるのがいやだ、というより、
帯域使用料やサーバの慢性的な高負荷に耐えられない、
ということだと思うんですよ・・・
その要因になるものは、何とか排除したいなぁ、というのが今までの流れなのです。

335 :ななむす ◆nnmm.69A :02/03/25 02:29 ID:???
>>333
大幅に仕様変更するなら、P2P的なものの方が未来を見てるかな、と。
いや、なんならQ2専用のイントラネットで2ちゃん運営とか(ばか

336 :ななむす ◆nnmm.69A :02/03/25 02:31 ID:???
>>332
私が夜勤さんの立場なら、8月からツール全面禁止の方向にしたと思います。。。

# でも、あのときそういうこといったら、とても反発が強かったです。
# 考え無しな発言だったと思います。Monazillaさんたちがんばってるんだもの。

ま、そんなこといってもしょうがないので。

337 :名無しさん@お腹いっぱい。 :02/03/25 02:41 ID:???
>>336
あれ、そうだったんですか?
ブラウザより転送量が抑えられるので、
ツール使用を推奨していたと思ってましたが…

# サーバに負荷かけてでもgzip導入した、って話聞いたけど


338 :夜勤 ★ :02/03/25 02:42 ID:???
UpTime(choco) = 9:40am up 8 days, 2:05, 0 users, load average: 0.34, 0.45, 0.48
UpTime(vip) = 9:41am up 23 days, 11:47, 0 users, load average: 1.38, 2.03, 2.39
UpTime(love) = 9:39am up 33 days, 22:55, 0 users, load average: 12.02, 9.37, 9.15

今日はこの辺で、おしまい
明日移行は game サーバも一緒にとります。
数日してから game サーバにも導入してみましょう。


339 :AJA6H/Ws ◆MPnX7dHA :02/03/25 02:45 ID:???
やっと過去ログ読んだけど、議論がループしてるような気がする^^;
どっかで聞いたことがある話がチラホラ・・・

思い切って、全ユーザー課金にしたら?
月100円とかなら出すよ。

340 :名無しさん@お腹いっぱい。 :02/03/25 02:46 ID:kN2MP1de
私が夜勤さんなら、逆に、ブラウザ完全禁止にして、cgiからhtml吐かせる
部分を完全に削っちゃうけどな。というか、ユーザのPCに表示部を任せて
鯖側はデータのみの方が、転送量&負荷的に有利だと思うが。

341 :名無しさん@お腹いっぱい。 :02/03/25 02:46 ID:???
>>337
当初はmod_gzip使わないでやったからMonazillaツールのみgzip効果があった
現在はmod_gzip入っているのでブラウザでも問題なし、ということでは?

342 :ななむす ◆nnmm.69A :02/03/25 02:47 ID:???
>>337
超短期的には、gz圧縮がきかなかったからブラウザが正解。
短期的には、差分取得できるし圧縮もできたからツール使用が正解。
長期的には。。。
(結局はユーザーインタフェースとしてどちらが便利か=鯖に負荷かけるか、だと)

>>338
ぺこり。

343 :AJA6H/Ws ◆MPnX7dHA :02/03/25 02:48 ID:???
>>340
それ、(・∀・)イイ!
S/Cシステムから考えると一番いいと思うなぁ・・・

344 :AJA6H/Ws ◆MPnX7dHA :02/03/25 02:50 ID:???
bbs.cgiを最適化するというのは、
短期的に考えるといいかも知れないが、
長期的に考えると仕様変更に弱くなって辛いかもとか
思ったり・・・

結局、付け焼き刃じゃダメなんだって!

345 :名無しさん@お腹いっぱい。 :02/03/25 02:51 ID:???
ツール強制になった時。
それは2ちゃんねる終焉の日。

346 :Dream ★ :02/03/25 02:53 ID:???
>>338
お疲れさまでした。

347 :ななむす ◆nnmm.69A :02/03/25 02:53 ID:???
>>343
read.cgi的動作をクライアントに任せるのは、確かに魅力的ですが、、、
read.cgi自体の負荷をもっと削る(特に ressplitter_splitあたり。>> 制御)
前提なら、私は指数級数的なアクセス増大の方が怖いです。。。
Apacheまで手を入れる前提なら、両手を挙げて賛成。

348 :Dream ★ :02/03/25 02:55 ID:???
妄想と至急策が混在しててすいません。

read.cgiのみは今後もhtmlで提供するけど、書き込みなどは
ツールじゃないと出来ない、といったのを妄想していました。いま。
意味ないですが。

349 :AJA6H/Ws ◆MPnX7dHA :02/03/25 03:09 ID:???
>>348
書き込みを規制してもあまり意味ないんじゃないの?
実際はROMの方が遙かに多いでしょ?
いや、データを取った訳じゃないから分からんけど。

350 :AJA6H/Ws ◆MPnX7dHA :02/03/25 03:10 ID:???
書き込み規制=1ch
とか言ってみるテスト(w

351 :AJA6H/Ws ◆MPnX7dHA :02/03/25 03:11 ID:???
>>347
>Apacheまで手を入れる前提なら

私はやって欲しいけど、なーんの権限も持ってないからなぁ

352 :名無しさん@お腹いっぱい。 :02/03/25 03:12 ID:???
>338
お疲れ様。

ということで本日の負荷グラフ最終版です。
ttp://mappy.mobileboat.net/~seek/up/index.cgi
No.807です。

353 :名無しさん@お腹いっぱい。 :02/03/25 03:14 ID:???
鯖にはあまり手を入れないっていうのが前提ですね。
結局鯖に手を入れると夜勤さんの管理負担が大きすぎるので、そうしたいなら他のところで
やって、というのが本音のようなので。

354 :AJA6H/Ws ◆MPnX7dHA :02/03/25 03:14 ID:???
>>352
乙!

355 :Dream ★ :02/03/25 03:15 ID:???
>>349-350
うんうん(笑)

>>351
Apacheに手を入れるのって、具体的にどんなヒントがあるんでしょう?

356 :AJA6H/Ws ◆MPnX7dHA :02/03/25 03:15 ID:???
やはり、政略的な面から言わせてもらうと、
直ちに雑誌掲載禁止の措置を取るべきだと思う。
ネトランとかはマジで悪質だぞ。

357 :名無しさん@お腹いっぱい。 :02/03/25 03:22 ID:???
なあ、技術的な話題に変えたつもりかもしれないが
やっぱり場違いくんだよ。話が見えていないんじゃないか。>>351
不確定な前提で話しすぎていて無駄だらけ。頼むからROMっててくれないか?

358 :夜勤 ★ :02/03/25 03:22 ID:???
>>356
さんせ〜い。

359 :AJA6H/Ws ◆MPnX7dHA :02/03/25 03:25 ID:???
>>358
いますぐやろうよ(w

360 :名無しさん@お腹いっぱい。 :02/03/25 03:28 ID:???
>>359
作った人間が決める事

361 :謎の”管理”人(w :02/03/25 03:28 ID:???
夜勤もいねーし一言。
管理者側からすっと「お客さんマンセー」なわけだ。
でもこの2ちゃんは大きくなりすぎちゃって、
サイトを開く家(場所)がないと・・・。
確かに鯖いっぱい借りて分散すればいいわけだが、
それには金がかかる。
そこら辺の問題が一番なんでしょ?違うかったらゴメソ

362 :謎の”管理”人(w :02/03/25 03:28 ID:MM0zLSKt
>358
ありゃまだいたし(w

363 :謎の”管理”人(w :02/03/25 03:29 ID:???
何気に動揺・・・ageてスマソ・・・(鬱

364 :AJA6H/Ws ◆MPnX7dHA :02/03/25 03:31 ID:???
>>361
3ちゃんを作って分散を・・・
って兄とかいちごとか色々あるね(w

365 :名無しさん@お腹いっぱい。 :02/03/25 03:33 ID:???
>>357じゃないけど、AJA6H/Ws ◆MPnX7dHAは発言がズレてると思う・・・

366 :謎の”管理”人(w :02/03/25 03:35 ID:???
>364
レンタル借りて思う事。
「持ち主から苦情来たらどうすんべ・・・」
で、実際今そーいった問題が来てるわけだ。
転送量とかってのね。
いくら圧縮かけたり、巡回禁止しても、
これだけ2ちゃんが大きくなったら対応するのは難しいと思う。
課金ってのは好きじゃないけど、
今の現状考えたらいたしかたなし・・・ってとこかな。

367 :AJA6H/Ws ◆MPnX7dHA :02/03/25 03:40 ID:???
>>366
まぁ、私は8月から覚悟してましたので・・・
規制がかかるくらいなら、課金を選びますね。

ただ、●にも問題があるからびみょー・・・
メリットなさ過ぎだし、カードでしか支払えない。
せめて、銀行から払えればいいのだけど。
私はカード持ってますけど、一般的には弱いと思う。
禿しくがいしゅつの意見で悪いけど。


368 :ボヤッキー :02/03/25 03:41 ID:???
>352
お疲れ様です。
http://www6.ocn.ne.jp/~boyakkie/average.html

369 :謎の”管理”人(w :02/03/25 03:44 ID:???
>367
わかるよ。今のままじゃね・・・。
まぁそれは今後経営者達が考えればいいんじゃね?
俺が今言いたいことは、
こんだけ夜勤とかがんばってるけど、
所詮いたちごっこで、また同じ問題が起きるって事。
まぁそれだけ人気あるからしゃーないけど(w
でもここはちょっと2ちゃんのターニングポイントだね。
100円や200円払ったって俺はいいと思う。
それだけ楽しめればね(^^ゞ

370 :AJA6H/Ws ◆MPnX7dHA :02/03/25 03:51 ID:???
>>369
そーそー、bbs.cgiにいくらテコ入れしても結局は耐えられないよ。
そして、最適化で難解になったコードに後でまた苦しめられる二重苦・・・

課金が強制的になれば、月100円でも
そうとうな収入になると思うのだが。

グッズが出ても買うよ。
私がマガジソかった理由は、単純に
オマケのステッカーが欲しかったという理由だから(w

371 :AJA6H/Ws ◆MPnX7dHA :02/03/25 03:51 ID:???
しかし、商業化すると更に鯖負担が増すという罠(w

372 :謎の”管理”人(w :02/03/25 03:54 ID:???
>371
そしたらまた考えれ
商業化するならそれくらいは悩まないとねぇ(w
まぁ無料奉仕の限界って事じゃね?

373 :ななむす ◆nnmm.69A :02/03/25 03:54 ID:???
>>370
bbs.cgi せっかく部分ごとに{}囲んでるのだから、もっともっとnextとかlastとか
駆使してBLOCKオーバーヘッドと変数放り込みループ削るだけでもだいぶ(以下略

374 :名無しさん@お腹いっぱい。 :02/03/25 03:55 ID:???
>>370
100円じゃおそらく認証等の費用で足が出るんでわ

375 :Dream ★ :02/03/25 03:57 ID:???
>>373
bbs.cgiってmod_perl出来たら、どのくらい負荷が軽減すると思います?

376 :謎の”管理”人(w :02/03/25 03:57 ID:???
>374
100円ってのは根拠のない例えです。
実際何人の人が2ちゃn見てるかもわからねーし。
でもそれくらいなら払えるじゃん?
それだけの事(w

377 :夜勤 ★ :02/03/25 03:59 ID:???
>>373
それを たった今 トオルさんと二人でやっているとこだったりして、

378 :AJA6H/Ws ◆MPnX7dHA :02/03/25 04:01 ID:???
>>377
がんがれ!

379 :謎の”管理”人(w :02/03/25 04:02 ID:???
>夜勤
がんばって!
俺の言いたいこと言ったんで、
あとは管理者に任せます。
でも2ちゃんのこのみんなで協力ってのはいいよねぇ
影ながら応援しています(^^ゞ

380 :AJA6H/Ws ◆MPnX7dHA :02/03/25 04:03 ID:???
>>375
mod_perlって、コンパイル時にメモリに常駐しちゃう奴だっけ?
実際にこれで動いてるシステムってあるのかなぁ?

381 :名無しさん@お腹いっぱい。 :02/03/25 04:03 ID:???
>>307
subject.txtを隠すとどこにどんなメリットがあるのかさっぱりわからん。
ていうか隠せるのか?


382 :ななむす ◆nnmm.69A :02/03/25 04:07 ID:???
>>375
実は mod_perl あまりよくわからないのん(ちょっと怖いという印象が)。

>>377
実は昨日ひとり寂しくやりました。
DispError(...) if ...;
系の文章がすごく多くなりましたよ。えぇ(笑

できるだけ複合文使わないよーにね、ってお伝えください。

383 :Dream ★ :02/03/25 04:12 ID:???
>>381
一つには、これ使ってクラッカーがランダムにスレッドを目標に設定して
荒らしている、ということがあるようです。
隠せるか?ということでは「やり方はあります」という程度です。
それはBasic認証でツールが直に要求して、という方法もあるし。

#盗むの簡単、なりすます野簡単だよ?ということになるかも知れませんが、
#それは通信法の適用範囲になるでしょう。きっと。

384 :Dream ★ :02/03/25 04:13 ID:???
>>382
毎回コンパイルしなくなる、という点で、ちょっともしかしたら
劇的な効果があるんじゃないかって思ってるんですけど、
副作用について、私もよくわかりません。

385 :夜勤 ★ :02/03/25 04:16 ID:???
bbs.cgi の負荷軽減と gzip 圧縮の話しだけど、
今は bbs.cgi で書き込まれたら
gzip を peral から二回呼び出しているのよね

CAll gzip index.html
CAll gzip subback.html
subject.txt は、 mod_gzip の方でやっている

でこれを index.html subback.html subject.txt を一気に
index.html.gz subback.html.gz subject.txt.gz にするスクリプトを C で書いて
bbs.cgi からは一発で呼び出したら、軽くなるかな?


386 :AJA6H/Ws ◆MPnX7dHA :02/03/25 04:16 ID:???
>>384
bbs.cgiをC言語で書くというのはがいしゅつ?
どっかにCGI用のライブラリとか転がってないかな?

387 :名無しさん@お腹いっぱい。 :02/03/25 04:17 ID:???
>383
subject隠したらsubbackを読むようになるだけだから
転送量が増える分だけ2ちゃんねる側の損じゃん。

388 :AJA6H/Ws ◆MPnX7dHA :02/03/25 04:17 ID:???
あ、微妙に夜勤★さんとカブタ(w

389 :ななむす ◆nnmm.69A :02/03/25 04:17 ID:???
>>384
その通りで、効果があるとは思うのですが、いい噂を聞かないというか、何というか。。。
(とりあえず夜勤さんマターだからおまかせ、ってこともあり)

390 :夜勤 ★ :02/03/25 04:19 ID:???
>>386
C で書いてもいいんですけどね、
ただ 規制とかの機動性がなくなっちゃうんですよね
いろいろな人が臨機応変に触れなくなるという罠。


391 :Dream ★ :02/03/25 04:20 ID:???
>>387
むずかしいもんですねぇ。。。

392 :AJA6H/Ws ◆MPnX7dHA :02/03/25 04:20 ID:???
>>390
なるほど。

>>391
同感・・・

393 :ななむす ◆nnmm.69A :02/03/25 04:21 ID:???
>>385
軽くなると思いますー。
。。。でも微妙かも。なんかオーバーヘッドが気になる。

>>386 >>390
やりたいですね(笑
いつも、さっぱりきっぱりトオルさんに遠慮されてしまいます。
>>387


394 :Dream ★ :02/03/25 04:23 ID:???
>>385
ソースを見ていないので私にはbbs.cgiのことはわからないのですが、
cgi内部からあえて子プロセス使うのは、どうかなって思います。
(実際は、Cコードがどれだけ最適化・効率化されているのか?といった点で変わると思います)

395 :ななむす ◆nnmm.69A :02/03/25 04:28 ID:???
gzip + gzip + mod_gzip
->
子プロセス + zlib*3

やっぱり、確実に早くはなると思うが、、、といったとこかな。

396 :夜勤 ★ :02/03/25 04:29 ID:???
main()
{
char bbs[] ; // command line から 板名をとる
/*bbs を test/ からの相対パスにする (../bbs)*/
zz_gzip(bbs,"index.html","index.html.gz");
zz_gzip(bbs,"subback.html","subback.html.gz");
zz_gzip(bbs,"subject.txt","subject.txt.gz");
}

で動くコード誰か書いてー
実験すね価値はあるような予感。


397 :Dream ★ :02/03/25 04:29 ID:???
>>393
軽くなりますかねぇ?
Perlのルーチン効率化して、その上で、サーバの負荷的な面で考えてどうなんでしょう?

398 :Dream ★ :02/03/25 04:30 ID:???
>>396
そうですね。やっぱり試してみないとわからないところです。

399 :Dream ★ :02/03/25 04:32 ID:???
夜勤さん、トオルさん的には、もうsubject.txtは
隠す必要はなくなったのでしょうか?
>クラッキング対策としての要望というか。

400 :夜勤 ★ :02/03/25 04:35 ID:???
攻撃受けたときの事を考えると
隠したいですけど >>399

401 :名無しさん@お腹いっぱい。 :02/03/25 04:39 ID:???
subject隠したらsubback・・・

402 :ななむす ◆nnmm.69A :02/03/25 04:40 ID:???
>>395
ファイルオープンの負荷とかわすれてた。。。

なーんか
http://www.hoops.ne.jp/~yk2yk2/mn/perl/gzipctl.pl
こういう方向性を考えてしまう。

# せっかく index.html も subback.html も subject.txt も bbs.cgi が
# 内部生成してるんだから、ストリーム的に圧縮した方が、と。

403 :夜勤 ★ :02/03/25 04:42 ID:???
めんどくささの問題と変更しても良いかどうかの問題で

subject.txt は形式、名前かえたら 大変なことになるけど、

subback.html は、名前変えようが、中身変えようが
自由自在なわけで、

404 :Dream ★ :02/03/25 04:42 ID:???
>>402
うん。そう思うところはあります。
Cで呼び出すと、Cが子プロセスになって、その孫プロセスで圧縮するわけですよね?
しかも、データを標準出力で受け渡して。
だったら、Perl内部で完結した方が、負荷は少ないような気がします。

405 :ななむす ◆nnmm.69A :02/03/25 04:45 ID:???
>>404
両方作ってテスト、ですかね。。。。

406 :名無しさん@お腹いっぱい。 :02/03/25 04:45 ID:???
subbackは変幻自在なノカー!

407 :夜勤 ★ :02/03/25 04:45 ID:???
なんか雪降ってるですか。。。
除雪車が動き回っているぞー

408 :Dream ★ :02/03/25 04:47 ID:???
>>405
そうしないとわかんないですね(笑)
プロセスプロセスいっても、一瞬で終わるかも知れないし。

sub do_gzipとか作って、
&do_gzip("$data");
とかでルーチン内でやっちゃうっていうのは、けっこうPerlではよくある話なんですけど。

409 :名無しさん@お腹いっぱい。 :02/03/25 04:47 ID:???
札幌は降ってるノカー?
北見は降ってないじゃないカー。

410 :夜勤 ★ :02/03/25 04:52 ID:???
現状を報告しますと

index.html , subback.html は bbs.cgi 内で
投稿があるたびに以下が行われるです。

system("gzip -c $INDEXFILE > $INDEXGZFILE");
system("gzip -c $SUBFILE > $SUBGZFILE");

subject.txt は、クライアントからリクエストされるたびに
mod_gzip が動いているはず。


411 :Dream ★ :02/03/25 04:57 ID:???
>>382
ななむすさんって、bbs.cgi見られる人だったのですか?

412 :試してないよ :02/03/25 05:01 ID:???
#include <stdio.h>
#include <sys/mman.h>
#include <zlib.h>
#ifndef MAP_FAILED
#define MAP_FAILED (void *)(-1)
#endif
#defineCOMPRESS_FLAG"wb6"/* wb1-wb9 */
void compress_one(const char *fname)
{
 int fd;
 void *buf;
 int fd = open(fname, O_RDONLY);
 if (fd >= 0) {
  struct stat st;
  if (fstat(fd, &st) == 0) {
   buf = (char *)mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
   if (buf != MAP_FAILED) {
    char gzname[256];
    sprintf(gzname, "%s.gz", fname);
    gzFile file = gzopen(gzname, COMPRESS_FLAG);
    if (file) {
     gzwrite(file, buf, st.st_size);
     gzclose(file);
    }
    munmap(buf, st.st_size);
   }
  }
  close(fd);
 }
}
void compress(const char *bbs, const char *fname)
{
 char fnbuf[256];
 sprintf(fnbuf, "%200s/%30s", bbs, fname);
 compress_one(fnbuf);
}
int main(int ac, char **av)
{
 if (++av, --ac) {
  compress(*av, "index.html");
  compress(*av, "subback.html");
  compress(*av, "subject.txt");
 }
 return 0;
}

413 :ななむす ◆nnmm.69A :02/03/25 05:01 ID:???
新聞見てニ速+へ。社会から遠くにいた今日一日だったのだなぁ。。。

>>410
少なくとも $INDEXFILE 作成 → $INDEXFILE open → $INDEXGZFILE
よりは、$INDEXGZFILE も $INDEXFILE と同時に作る方法が軽いと思います。

。。。が、今日は寝るです。仕事どうしよう。寝れるのかなヽ(´ー`)ノ
皆さんお疲れさまでした。

>>411
見られないですよー。
こちらからはいくらでも公開しちゃうのだけど(笑
4種くらい手持ちのを見つつ、想像しつつ、です。

414 :Dream ★ :02/03/25 05:02 ID:???
>>413
お休みなさいです〜

415 :試してないよ :02/03/25 05:03 ID:???
ちょっと見ただけでも
 sprintf(fnbuf, "%.200s/%.30s", bbs, fname);
とか、ぼろぼろだ

416 :ななむす ◆nnmm.69A :02/03/25 05:03 ID:???
>>412
!! お疲れさまですです。

417 :AJA6H/Ws ◆MPnX7dHA :02/03/25 05:03 ID:???
>>413
乙〜〜!

418 :Dream ★ :02/03/25 05:05 ID:???
>>410
system("gzip -c $INDEXFILE > $INDEXGZFILE");

`gzip -c $INDEXFILE > $INDEXGZFILE"`;
と、どちらが負荷が少ないのかなぁ?と思いましたが、どちらも大して違わないかも知れません。
さらにいいますと、その内容であれば、Cで別プロセスに任せるより、そのままの方がよいと思います。

419 :名無しさん@お腹いっぱい。 :02/03/25 05:10 ID:???
kage.exe Version0.99.1.6に。

420 :Dream ★ :02/03/25 05:16 ID:???
sub do_gzip [ `gzip -c $_[0] > $_[1]`; }
として、&do_gzip("$INDEXFILE","$INDEXGZFILE");
等という呼び出し方をすれば、若干スクリプトが効率化するかも知れませんね。

余談ですいませんでした。

421 :名無しさん@お腹いっぱい。 :02/03/25 05:21 ID:???
おお。かちゅ〜しゃの巡回ボタンが更新チェックになっとる。


422 :名無しさん@お腹いっぱい。 :02/03/25 05:51 ID:???
動作確認した。圧縮率は外からも指定可。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <ctype.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <zlib.h>
#ifndef MAP_FAILED
#define MAP_FAILED (void *)(-1)
#endif
char compress_flag[30];
void compress_one(const char *fname)
{
 int fd;
 void *buf;
 fd = open(fname, O_RDONLY);
 if (fd >= 0) {
  struct stat st;
  if (fstat(fd, &st) == 0) {
   buf = (char *)mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
   if (buf != MAP_FAILED) {
    char gzname[256];
    gzFile file;
    sprintf(gzname, "%s.gz", fname);
    file = gzopen(gzname, compress_flag);
    if (file) {
     gzwrite(file, buf, st.st_size);
     gzclose(file);
    }
    munmap(buf, st.st_size);
   }
  }
  close(fd);
 }
}
void compress_file(const char *bbs, const char *fname)
{
 char fnbuf[256];
 sprintf(fnbuf, "%.200s/%.30s", bbs, fname);
 compress_one(fnbuf);
}
int main(int ac, char **av)
{
 int mode = 6;
 ++av, --ac;
 if (ac == 2 && isdigit(*av[1])) {
  mode = atoi(av[1]);
  --ac;
 }
 sprintf(compress_flag, "wb%d", mode);
 if (ac == 1) {
  compress_file(*av, "index.html");
  compress_file(*av, "subback.html");
  compress_file(*av, "subject.txt");
 }
 return 0;
}

423 :名無しさん@お腹いっぱい。 :02/03/25 06:03 ID:???
bbs.cgi内部で圧縮するのが一番いいのは確かだけど
Zlib入ってるのかな?
MD5とかも入ってなくて(^_^;)が苦労してたような。
include/に、zlib.hもなかったし。

424 :名有りさん@お腹へった ◆fSunOs.U :02/03/25 06:09 ID:???
何かこんな時間に......乙カレーです.

ところで,こういうの使えばfork()せずに済むかと.
http://cpan.org/modules/by-category/17_Archiving_and_Compression/Compress/Compress-Zlib-1.16.readme
http://cpan.org/modules/by-category/17_Archiving_and_Compression/Compress/Compress-Zlib-1.16.tar.gz

fork()してCのプログラム使うのなら,daemonizeして非同期実行させた上で,
5秒ぐらい待ってその間に発生した圧縮処理を1つにまとめてしまうのも考えかと.

fd = open(CHKFILE, O_WRONLY|O_CREAT|O_EXCL, 0700);
if (fd == -1) return;
sleep(5);
unlink(CHKFILE);
/* 処理続行 */


425 :名無しさん@お腹いっぱい。 :02/03/25 08:10 ID:???
>>410
ああ、やっぱりsubject.txtはリクエスト単位のmod_gzip圧縮だったのか。
全スレ 655 はやっぱデマだな。

426 :名無しさん@お腹いっぱい。 :02/03/25 08:13 ID:???
>>418
>その内容であれば、Cで別プロセスに任せるより、そのままの方がよいと思います。

なんで?呼ぶプロセスが3つから1つに減るのに?理由は?

283KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30