Apache2.4を使用した同時接続テストでエラーが発生する

このQ&Aのポイント
  • Apache2.4を使用して同時接続数10000のサーバーを作ろうとしていますが、テスト中にエラーが発生しています。
  • Apache2.4(event_mpm)は同時接続数10000のサーバーを作成するのに適していると判断されました。
  • 発生しているエラーの原因や修正方法について教えてください。
回答を見る
  • ベストアンサー

同時接続テストのシェルでエラー

Apache2.4を使い、同時接続数10000のサーバーを作ろうとしています。 (Quad core X2連装 16GBメモリ ストレージSSD  CentOS6.4 ) 下記を拝見しApache2.4(event_mpm)であれば可能と判断しました。 http://blog.matsumoto-r.jp/?p=2996 上記のホームページでは、実際に1万同時接続のテストを行って判断しています。 当方もテストをして実態を確認したいと考えました。 上記ホームページの著者のテスト環境が下記です。 http://blog.matsumoto-r.jp/?p=1812 ****************************************************** 以下、テスト環境 クライアントサーバから静的コンテンツに対して、httperfを使って1秒間に複数のリクエストを行い、その数を変動させて、サーバ側が1秒間に返すことのできたレスポンス数を計測した。 _______________________________________ ***************** test.sh **************** #!/bin/sh RESULT='./result.txt' for port in 80 do #for count in 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 #for count in 11000 12000 13000 14000 15000 16000 17000 18000 19000 20000 for count in 21000 22000 23000 24000 25000 26000 27000 28000 29000 30000 do echo -n "$port $count " >> $RESULT httperf --rate $count --num-conns 25000 --server ipaddr --port $port --uri=/test.html ¦ grep "Request rate:" >> $RESULT.$port sleep 60 done done ___________________________________ ****************************** test.html ****************************** <html> <body> <b>テストです。</b> <p>テストですテストですテストです。</p> </body> </html> ___________________________________ ****************************** result.txt ****************************** (空っぽ) ___________________________________ 【問題点】 本来なら、result.txtにテスト結果が書き込まれると思うのですが、そのようなことはなく、下記のようなエラーが出ます。 > sh test.sh test.sh: line 4: syntax error near unexpected token `do ' test.sh: line 4: `do doをコメントアウトすると、今度はforがダメと言われます。 どこを修正すればいいかご教授頂けますようお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

改行コードが LF でなく CR LF になっているとか。

tajix14
質問者

お礼

出来ました。有難うございました。

関連するQ&A

  • シェルスクリプトがちゃんと動かない

    よろしくおねがいします。 fileフォルダに 1.txt 2.txt 3.txt というファイルがあり、ここから1.txtを別フォルダに移動します。 (ここまでは問題ありません) その後fileフォルダには 2.txt 3.txt というファイルが残るのですが、このファイル名を自動的に 1.txt 2.txt と連番でリネームしたく #!/bin/sh declare -i i=1 for file in *.txt do mv $file $i.txt i=i+1 done をhoge.shとして準備しました。 Mac OS X(Darwin)では思い通りに実行されるのですが、Webサーバ(FreeBSD 6.1-RELEASE-p21)にアップし %sh hoge.sh とすると declare: not found となり、ファイルの方も .txt i+1.txt の2ファイルになってしまいます。 あまり知識も無く勉強しながらなのですが、きちんと連番で書き換えられるようにするにはどうすればよろしいでしょうか? 根本的に間違ってる事などあるかと思いますがよろしくおねがいします。

  • コマンドプロンプト 実行結果の桁をそろえたい

    バッチの実行結果の件数%count%を、5桁の右寄せ(結果が1桁のばあいは、スペース4桁を頭に入れてる)でテキストファイルresult.txt に出力したいのですが、下記のように書くと、 table1 : ("d\n",0) 件  と出力されてしまいます。 table1 :    0 件   と出力されるようにするにはどうしたらよいのでしょうか? for /f %%i in ('mysql -u root -p ^< "c:\bat\test.sql"') do set count=("%5d\n",%%i) echo table1 : %count% 件 >> "c:\bat\result.txt"

    • ベストアンサー
    • MySQL
  • コマンドプロンプト 複数の実行結果を変数に

    複数のテーブルのデータ件数を取得して変数に入れ、result.txtに結果を出力したいのですが、下のように書くと、1つのテーブルのデータ件数しか出力されません。複数の結果を出力するにはどうしたらよいか教えてください。 for /f %%z in ('mysql -u root -p ^< "c:\bat\test.sql"') do set count=%%z echo result: %count% >> "c:\bat\result.txt" test.sqlの中身を、 select count(*) from table1; select count(*) from table2; select count(*) from table3; とすると何も出力されず、 select count(*) from table1; とすると、1つの結果だけ出力されます。

    • ベストアンサー
    • MySQL
  • Bシェルで配列を使いたいのですが・・・

    下記のBシェルファイルで、あるテキストファイルの内容を1行ずつ読み込んで、その行を変数に代入し、後続にてその変数を表示するという処理を実現したいのですが、うまくいきません。 どのようにすればうまく行くのかまた、何故うまくいかなかったのかをご教授頂ければと思っております。 宜しくお願い致します。 <Bシェルファイル> #!/bin/sh exec 3<&0 < TBL.txt count=0 while read line do ex$count=$line count=`expr $count + 1` done exec 0<&3 3<&- echo ${ex[1]} exit 0 <結果> aho.sh: ex0=A コマンドが見つかりません。 aho.sh: ex1=B コマンドが見つかりません。 aho.sh: ex2=C コマンドが見つかりません。 aho.sh: 置換が正しくありません

  • シェルスクリプトについて

    bangou.txtには ▲ 123123 123123 100000 ▲ ▲ というように数値が入っています。(▲は空白ですが改行コードがはいってます) この場合、1行目と3行目を比較するスクリプトを作りたいと思って 色々調べて以下のようなスクリプトを作ってみましたけどうまく動きません。 #!/bin/bash for iii in `sed -n '1p' bangou.txt` do jjj=`sed -n '2p' bangou.txt` kkk=`sed -n '3p' bangou.txt` #declare -i $kkk if [ "$kkk" = "$iii" ] then echo "$iii" else echo "$kkk" fi done どこか基本的なところで間違えているのかと思うのですが初心者なので よくわかりません。 わかる方がいらっしゃったら教えていただけないでしょうか。

  • シェルスクリプト 一つのふくすう変数から値を取る方

    いつもありがとうございます。 NICという変数にはネットワークアドレスが2つ入ってます。 NIC= 192.168.0.1 127.0.0.1 下記のスクリプトで上記2つのアドレスを取ろうと思ってます。 ==========test.sh================ while read LINE; do echo $LINE done < ${NIC} =============================== しかし下記のようなエラーになります。 変数の取り出し方が悪いのだと思います。 =============================== ./test.sh: 192.168.0.1 127.0.0.1: そのようなファイルやディレクトリはありません 恐れ入りますが正しいスクリプトをご教授くださいますようお願いします。

  • シェルスクリプト中で、ヒアドキュメントで書いた内容を配列に格納したい

    SQL文を実行するシェルスクリプトを作っています。 HAIRETSUにSQLファイル名を格納して、forループで実行させているのですが、現在は下記のようにSQLファイル名を横に並べて書いています。 ------------------------------------------- #!/bin/bash HAIRETSU=( test1.sql test2.sql ) for YOUSO in "${HAIRETSU[@]}" ; do psql testdb1 -f $YOUSO done -------------------------------------------- SQLファイルの数は実際にはもっと多いので、一行につき1ファイルだけ名前を書くようにしたいのです。ヒアドキュメントを使って後述のような方法も試みたのですが、この方法ですと配列が作成されません。 配列を別の処理でも使用したいので、ヒアドキュメントの内容を何とか配列に格納したいのですが、よい方法はないでしょうか? -------------------------------------------- for LINE in `cat << EOF test1.sql test2.sql EOF` do psql testdb1 -f $LINE done

  • シェルスクリプトの演算について

    下記のような内容で、list変数の値から抽出してtest{i}変数に入れるようにしています。 ※awkコマンドでのprintの値を for の値にしています。 for i in 0 1 2 do test${i}=`echo ${list} | awk '{ print $'${i}' }'` done この例はうまくいくのですが、 print $'${i}'の部分で${i}の値にプラス2したものを利用したく、 test${i}=`echo ${list} | awk '{ print $'${i+2}' }'` や test${i}=`echo ${list} | awk '{ print $i=`expr ${i} + 2` }'` 等を試しましたがうまくいきません。 どのようにすればよいでしょうか。 よろしくお願い致します。

  • UNIX のシェル 文字の置換について

    シェルでファイルの文字列を置換したいです。 /*~*/のコメントの文字なので、1行数を変えたくないです。 ─────────────────────────── ※1文字分の空白を「_」で表示します。 test.txtファイルの「XXXXX」を「aa___」に置換する。 ─────────────────────────── 【test.txt 置換前】 /**************/ /*_XXXXXYYYYY_*/ /**************/ 【シェルの内容 test.sh】 #!/bin/csh set IN_henkan = `printf "%-5s" $1` perl -i -p -e 's/XXX/'$IN_henkan'/g' test.txt 【シェルを実行】 test.sh aa 【test.txt置換前 希望する状態】 /**************/ /*_aa___YYYYY_*/ /**************/ 【test.txt置換前 実際の状態】 /**************/ /*_aa_YYYYY_*/ /**************/ ─────────────────────────── 「aa」の後ろに1文字分の空白しか挿入されないです。

  • bashで変数を含んだファイル読み込み

    お世話になります。 外部読み込みファイルの中に変数やコマンドをセットして利用したいのですが、それはできないのでしょうか? ----test.txt messages-${testdate} `hostname`.log -------------------------- ----test.sh testdate=`date +%Y%m%d` for line in `cat test.txt` do echo $line done -------------------------- ----出力 messages-${testdate} `hostname`.log -------------------------- ----望む出力結果 messages-20150521 servername.log -------------------------- 方法がございましたら、ご教授お願い致します。