外部 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 環境で作業しています。