4

簡単な質問: 私の tomcat サーバーは 850 MB/秒に達しています。これは論理的ですか?

Tomcat のインストールをベンチマークしようとしています。サーバーは、毎秒 ~2.5 GBytes/S (30 gBits) の速度に到達したいバックエンド ストレージ サーバーです。これはインターネットサーバーではありません。これは、複数のファイバー カードを備えたクラウド コンピューティング ノードです。理論上の限界にできるだけ近づくことに興味があります。

実際の S/W でベンチマークを行ったとき、私のパフォーマンスは標準以下でした。「ダミー」サーブレット(以下)でTomcatをテストしました。私は 850 MBytes/s に達しました。しかし、私の CPU は 30% しか使用されていません。これは論理的ですか?

テストにapache abを使用しています:

ab -c 100 -n 10000  localhost:8080/tcbench/tcbench

私のセットアップは、32GBのメモリを搭載したE31260L XEON、Ubuntu 12.04、およびJDK 7(デフォルトの構成ファイル)を搭載したOracale tomcat7です。

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 
public class tcbench extends HttpServlet {
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("application/text;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            out.print(testBuffer);
        } finally {            
            out.close();
        }
    }

    static char[] testBuffer=new char[128*1024];

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }
}
4

1 に答える 1

0

CPU バウンドでない場合は、通常、他の何かが妨げになっていることを意味します。

アクセス ロガーまたはその他のログを使用していますか?

于 2013-11-01T18:17:27.913 に答える