Aaron
From the CPU samples report. Here is the parts of the CPU samples report (-Xrunhprof:cpu=samples, depth=4).  

TRACE 300668:
java.net.SocketInputStream.socketRead0(SocketInputStream.java:Unknown line)
java.net.SocketInputStream.read(SocketInputStream.java:129)
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:127)
org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
TRACE 300310:
java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:Unknown line)
java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
java.net.ServerSocket.implAccept(ServerSocket.java:462)
java.net.ServerSocket.accept(ServerSocket.java:430)
TRACE 300639:
sun.nio.ch.ServerSocketChannelImpl.accept0(ServerSocketChannelImpl.java:Unknown line)
sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:152)
sun.nio.ch.ServerSocketAdaptor.accept(ServerSocketAdaptor.java:84)
org.apache.cassandra.net.MessagingService$SocketThread.run(MessagingService.java:617)
TRACE 300670:
java.net.SocketOutputStream.socketWrite0(SocketOutputStream.java:Unknown line)
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
java.net.SocketOutputStream.write(SocketOutputStream.java:136)
org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:145)
TRACE 301122:
java.lang.Object.notify(Object.java:Unknown line)
org.apache.cassandra.utils.SimpleCondition.signal(SimpleCondition.java:62)
org.apache.cassandra.service.ReadCallback.response(ReadCallback.java:169)
org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java


rank   self  accum   count trace method
   1 74.00% 74.00%  160934 300668 java.net.SocketInputStream.socketRead0
   2 14.85% 88.85%   32302 300310 java.net.PlainSocketImpl.socketAccept
   3  3.67% 92.52%    7990 300639 sun.nio.ch.ServerSocketChannelImpl.accept0
   4  1.90% 94.43%    4142 300670 java.net.SocketOutputStream.socketWrite0
   5  0.79% 95.22%    1716 301122 java.lang.Object.notify

--
Thanks
Baskar Duraikannu

On Sep 26, 2011, at 4:55 PM, aaron morton wrote:

How are you deciding what is thrift ? Thrift is used to handle connections and serialize  / de-serialize off the wire.

Cheers



-----------------
Aaron Morton
Freelance Cassandra Developer
@aaronmorton
http://www.thelastpickle.com

On 27/09/2011, at 2:32 AM, Baskar Duraikannu wrote:

Hello -

I have been running read tests on Cassandra using "stress" tool.  I have been noticing that thrift seems to be taking lot of CPU over 70% when I look at the "CPU samples" report. Is this normal?  

CPU usage seems to go down by 5 to 10% when I change the RPC from "sync" to "async".  Is this normal?

I am running Cassandra 0.8.4 on Cent OS 5.6 ( Kernel 2.6.18.238) and Oracle JVM.

-
Thanks
Baskar Duraikannu