mirror of
https://github.com/wahyd4/pinpoint.git
synced 2026-08-16 00:05:57 +10:00
[강운덕] [LUCYSUS-1744] test의 hbase 설정 삭제. udp receiver의 deserializer를 thread local로 캐쉬하도록 변경.
git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-server/trunk@2149 84d0f5b1-2673-498c-a247-62c4ff18d310
This commit is contained in:
@@ -107,7 +107,7 @@ public class StatisticsCache {
|
||||
|
||||
private void drainAllLocalBuffer() {
|
||||
try {
|
||||
logger.debug("drain all local buffer");
|
||||
logger.trace("drain all local buffer");
|
||||
|
||||
bufferListLock.lock();
|
||||
for (Map<Key, Value> buffer : bufferList) {
|
||||
@@ -160,7 +160,7 @@ public class StatisticsCache {
|
||||
return;
|
||||
}
|
||||
|
||||
logger.debug("flush cache");
|
||||
logger.trace("flush cache");
|
||||
|
||||
Set<Entry<Key, Value>> entrySet = cache.entrySet();
|
||||
for (Entry<Key, Value> entry : entrySet) {
|
||||
|
||||
@@ -16,6 +16,7 @@ import org.apache.thrift.TBase;
|
||||
import org.apache.thrift.TException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.core.NamedThreadLocal;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.*;
|
||||
@@ -193,10 +194,16 @@ public class UDPReceiver implements DataReceiver {
|
||||
|
||||
private class DispatchPacket implements Runnable {
|
||||
private final DatagramPacket packet;
|
||||
private final ThreadLocal<HeaderTBaseDeserializer> deserializer = new NamedThreadLocal<HeaderTBaseDeserializer>("HeaderTBaseDeserializer") {
|
||||
@Override
|
||||
protected HeaderTBaseDeserializer initialValue() {
|
||||
return new HeaderTBaseDeserializer();
|
||||
}
|
||||
};
|
||||
|
||||
private DispatchPacket(DatagramPacket packet) {
|
||||
if (packet == null) {
|
||||
throw new NullPointerException("packet");
|
||||
throw new NullPointerException("packet must not be null");
|
||||
}
|
||||
this.packet = packet;
|
||||
}
|
||||
@@ -205,8 +212,7 @@ public class UDPReceiver implements DataReceiver {
|
||||
public void run() {
|
||||
Timer.Context time = timer.time();
|
||||
|
||||
// thread local로 캐쉬할까? 근데 worker라서 별로 영향이 없을거 같음.
|
||||
HeaderTBaseDeserializer deserializer = new HeaderTBaseDeserializer();
|
||||
HeaderTBaseDeserializer deserializer = this.deserializer.get();
|
||||
try {
|
||||
TBase<?, ?> tBase = deserializer.deserialize(packet.getData());
|
||||
// dispatch는 비지니스 로직 실행을 의미.
|
||||
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
package com.nhn.pinpoint.collector.dao.hbase;
|
||||
|
||||
import com.sematext.hbase.wd.RowKeyDistributorByHashPrefix;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath:applicationContext-test.xml")
|
||||
public class HbaseApplicationTraceIndexDaoTest {
|
||||
|
||||
@Autowired
|
||||
private RowKeyDistributorByHashPrefix distributorByHashPrefix;
|
||||
|
||||
@Test
|
||||
public void testInsert() throws Exception {
|
||||
// distributorByHashPrefix.getOriginalKey(Bytes.read(1));
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
hbase.client.host=localhost
|
||||
# 가상머신 장비
|
||||
#hbase.client.host=10.101.17.108
|
||||
#개발적용 장비
|
||||
#hbase.client.host=114.111.41.36
|
||||
|
||||
hbase.client.port=2181
|
||||
hbase.htable.threads.max=32
|
||||
@@ -1,23 +0,0 @@
|
||||
#HBaseTemplate에서 사용하는 HtablePool사이즈
|
||||
hbase.hTablePoolSize=1024
|
||||
|
||||
# tco listen port
|
||||
collectorTcpListenPort=9994
|
||||
# udp listen port
|
||||
collectorUdpListenPort=9995
|
||||
|
||||
# udp메시지를 처리할 thread 수, hbase.hTablePoolSize사이즈와 같이 조절해야 한다.
|
||||
udpWorkerThread=512
|
||||
# udp메시지를 처리할 thread가 모두 동작중일때 요청을 몇개까지 큐잉할지?
|
||||
udpWorkerQueueSize=5120
|
||||
|
||||
|
||||
#udp socket의 receiveBufferSize설정. 만약 udp 손실율이 심할 경우 아래 사항을 체크해볼것.
|
||||
udpSocketReceiveBufferSize=4194304
|
||||
#$ /sbin/sysctl -a | grep -e rmem -e wmem
|
||||
#net.core.wmem_max = 524288
|
||||
#net.core.rmem_max = 524288
|
||||
#net.core.wmem_default = 229376
|
||||
#net.core.rmem_default = 229376
|
||||
#위 설정을 다음과 같이 수정합니다.
|
||||
#irteamsu$ sudo sysctl -w net.core.rmem_max=4194304
|
||||
Reference in New Issue
Block a user