4

外部 API を呼び出す REST ベースのサービスがあり、その API から応答を取得します。

サービスをホストするときにボックスがトラフィックを処理できることを確認するために、ここで容量要求を提出していました。

それで、キャパシティの連中が私に尋ねてきました -

Any idea what is the estimated CPU and IO time for these calls?

simple languageこれらの用語の意味を誰か教えてもらえますか? また、通話に関する大まかな見積もりを取得するには、どのようなアプローチをとればよいでしょうか?

助けてくれてありがとう。

アップデート:-

これが私のプログラムだとします。

public class RestLnPTest {

    private final static Logger LOG = Logger.getLogger(NokiaLnPTest.class.getName());
    private static int noOfThreads = 10;

    public static void main(String[] args) {

        ExecutorService service = Executors.newFixedThreadPool(noOfThreads);

        try {

            for (int i = 0; i < 100 * noOfThreads; i++) {
                service.submit(new ThreadTask());
            }

            service.shutdown();
            service.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);

        } catch (InterruptedException e) {

        } catch (Exception e) {

        } finally {
            logHistogramInfo();
        }
    }

    private static void logHistogramInfo() {

     System.out.println(ThreadTask.lookupHistogram);

    }
}

class ThreadTask implements Runnable {

    public static ConcurrentHashMap<Long, AtomicLong> lookupHistogram = new ConcurrentHashMap<Long, AtomicLong>();
    private static final String URL = "SOME_URL";

    @Override
    public void run() {

        RestTemplate restTemplate = new RestTemplate();

        long start = System.nanoTime();

        String result = restTemplate.getForObject(URL, String.class);

        long end = System.nanoTime() - start;

        final AtomicLong before = lookupHistogram.putIfAbsent(end / 1000000, new AtomicLong(1L));

        if (before != null) {
            before.incrementAndGet();
        }
    }
}

では、どうすれば CPU 時間と IO 時間を把握できますか? 現在、私は Unix 環境で作業しています。

4

1 に答える 1

2

アプリケーション アクティビティによる CPU 消費と IO 負荷を測定する必要があると思います。

Unixライクなシステムを使用している場合は、使用できます

  1. top手動監視用コマンド
  2. vmstat機械全体の自動監視用
  3. ps特定のプロセスを監視するための適切なオプションがあります。

Windows では、タスク マネージャーを使用して開始します。vbsまたはjscriptWMI を使用して同じデータを取得する スクリプトを実装することもできます。

Java で実装されたプラットフォームに依存しない方法が必要な場合は、JMX を使用できます。システム Bean は、少なくとも CPU 消費に関する限られた情報を提供します。

于 2013-03-15T19:27:31.093 に答える