Kanzhe Jiang
2011-11-16 18:32:53 UTC
I wrote a simple packetstreamer thrift server with NBlocking and THsHa server.
The server takes 100% CPU usage in top even when no client is present.
Here is how the server is instantiated:
public static void simple(PacketStreamer.Processor processor) {
try {
// Use this for a multithreaded server
TNonblockingServerTransport serverTransport = new
TNonblockingServerSocket(port);
TNonblockingServer.Args args = new
TNonblockingServer.Args(serverTransport);
//THsHaServer.Args args = new THsHaServer.Args(serverTransport);
args.processor(processor);
args.transportFactory(new TFramedTransport.Factory());
args.protocolFactory(new TBinaryProtocol.Factory(true, true));
//TServer server = new TThreadPoolServer(args);
TServer server = new TNonblockingServer(args);
//TServer server = new THsHaServer(args);
log.debug("Starting the packetstreamer server on port {} ...",
port);
server.serve();
} catch (Exception e) {
e.printStackTrace();
}
}
The JConsole profiler showed at least the poller thread with increasing cputime.
The point of using NonBlockingServer is to be graceful with CPU.
Any help is greatly appreciated!
Thanks,
Kanzhe
The server takes 100% CPU usage in top even when no client is present.
Here is how the server is instantiated:
public static void simple(PacketStreamer.Processor processor) {
try {
// Use this for a multithreaded server
TNonblockingServerTransport serverTransport = new
TNonblockingServerSocket(port);
TNonblockingServer.Args args = new
TNonblockingServer.Args(serverTransport);
//THsHaServer.Args args = new THsHaServer.Args(serverTransport);
args.processor(processor);
args.transportFactory(new TFramedTransport.Factory());
args.protocolFactory(new TBinaryProtocol.Factory(true, true));
//TServer server = new TThreadPoolServer(args);
TServer server = new TNonblockingServer(args);
//TServer server = new THsHaServer(args);
log.debug("Starting the packetstreamer server on port {} ...",
port);
server.serve();
} catch (Exception e) {
e.printStackTrace();
}
}
The JConsole profiler showed at least the poller thread with increasing cputime.
The point of using NonBlockingServer is to be graceful with CPU.
Any help is greatly appreciated!
Thanks,
Kanzhe