그래서 jms msg를 청취하고 수정 태그에 따라 다른 기록 대기열에 기록하는 간단한 코드가 있습니다.오랫동안 실행중인 FileChannel.lock
public void onEvent(InputEvent inputEvent) {
String msg = ((SimpleInputEvent) inputEvent).getMessage();
int start = msg.indexOf("\u000155=");
if (start == -1){
// dropping it
return;
}
char symbol = msg.charAt(start+4);
for (int i = m_ranges.length - 1; i >= 0; i --){
if (symbol >= m_ranges[i]){
m_appenders[i].writeText(msg);
break;
}
}
}
는 지금, 나는 몇 가지 성능 테스트를 실행 그리고 난 그것이
메인 스레드가 위의 함수를 실행 프로필
의이 종류를 가지고 참조하십시오. 그리고 FileChannel.lock이 30 초 동안 계속 실행되고 있음을 알 수 있습니다! 그게 무슨 일인지 모르겠습니다. 이런 대기열을 만들었습니다. m_queues[j] = SingleChronicleQueueBuilder.binary(path + "_" + m_ranges[j]).build();
m_appenders[j] = m_queues[j].acquireAppender();
고마워요!
더 읽은 후, 나는이 테스트에서 결코 도달하지 못하는 512Mb로 blockSize를 늘렸다. 그러나 성능 테스트에서 여전히 병목 현상이 발생합니다. 특히, sar shows
나는이 코드가 결코 실행되지 않아야하는 cq4 파일에 작성한 것보다 bufferSize를 크게 늘 렸습니다. 그러나 시스템에 병목 현상이 여전히 있습니다. 나는 특별 행정구를 켤 경우에, 나는
오전 5시 5분 41초를 참조 TPS rtPS 서비스 wtps 빵/s의 bwrtn/s의 .... 오전 5시 10분 12초 714.14 0.00 714.14 0.00 6901.01
05 : 오전 5시 41분 422.00 0.00 3376.00 8.00 0.10 0.23 0.00 0.20
DEV TPS rd_sec는/s는 wr_sec/S가 avgrq-SZ는 avgqu-SZ 기다리고 svctm 활용도가 ... 오전 5시 10분 12초가 rootvg에-lvar 무엇을해야 나는 책상에 쓰는 큰 덩어리를 피하려고합니까?
OS/커널 버전과 Java 버전을 알려주시겠습니까? –