ohhh... AIX..
oprofile & latencytop is for Linux only :(

so. If i understand correctly
-- You know that slowdown you are interesting lay in protobuf
-- all other [network / request data size / request complexity ] is the 
same at the start and after the week

from my exp [oh, also very limited] AIX networking is the last thing to 

definitely, i cant to propose smth usefull... :(

may be, 
-- You alloc tooo memory
-- You need to use profiling tools
-- reduce problem to smth small & publish code


пятница, 11 января 2013 г., 12:45:40 UTC+4 пользователь debo...@2pirad.com 
> Thanks for your suggestions. Please find my response below:
> On Friday, January 11, 2013 1:16:19 PM UTC+5:30, Дмитрий Дьяченко wrote:
>> if i undestand correctly, You have a looong-run application.
> Yes, you are right, my application is a really looooong running one. It is 
> expected to run 24 x 7 x 365.
>> - at start You have 2 ms cycle request-response
> The actual request response cycle is a bit more than 2 ms, because after 
> the request is recieved by the application (#9 in my list), it does a few 
> things, which may take longer. But, the time taken to decode the protobuf 
> request is 2 ms at start.
>> - after a week You have 200 ms cycle
> Right, the time taken to decode gradually increases and becomes 200 ms. If 
> left running for longer, it even reached 1 sec in 15 days time.
>> - Your app is correct and only place where problem may lay is protobuf?
> From the logs which are there in my application, I have seen that only the 
> time taken to decode is gradually increasing. I have also done some memory 
> and thread profiling of my application, but did not find any irregularities 
> (like increase in memory/threads)
>> can You do the following?
>> -- run 'latencytop' at start and after a week?
>> -- run 'oprofile' at start and after a week?
> My application is running on IBM AIX server (using IBM JVM). Are the above 
> tools available for AIX?
>> -- may be its reasonable to writeout times from crititical points of Ypur 
>> app? smth like: before req? after req? before response - after response
> I have logs specific for this purpose which are there at the start and end 
> of these points. Like, before decode and after decode, etc. From these logs 
> I found out the point which was gradually slowing down.
>> from my [very limited] exp a such problems traditionally becomes from 
>> unintendend sources -- memory allocator, log sub-system, database, swap, 
>> etc...
> The only other component involved over here (other than the application 
> and JMV) is the network. But, I don't think network is the issue because 
> the decoding is done after the request object is fully received from the 
> client. Apache MINA is responsible for getting the request from the client.
>> Thanks,
>> Dmitry
>> пятница, 11 января 2013 г., 10:50:54 UTC+4 пользователь 
>> debo...@2pirad.com написал:
>>> My application uses Google Protocol Buffer with Apache MINA. There are 
>>> clients who connect to the MINA Connector, send request to the server and 
>>> then wait for the response from the server. The flow of control is as 
>>> follows:
>>> 1. Client sends request
>>>     2. Request received at MINA filter (<Class> 
>>> extends CumulativeProtocolDecoder)
>>>         3. doDecode() method is called
>>>             4. A request object (generated from *.proto file) is created 
>>> using the <RequestObject>.parseFrom(bytes)
>>>                 5. The request is passed on to the IOHandler (<Class> 
>>> extends IoHandlerAdapter)
>>>                     6. messageReceived() method is called
>>>                         7. In this method, the request object (from #7) 
>>> is processed to create the list of requests which has been sent by the 
>>> client. 
>>> *                        8. At this point, we have noticed that the 
>>> time taken to process the request object (#7) is gradually degrading with 
>>> time. From a initial period of around 2 ms, the time period is going up to 
>>> 200 ms in just 8 days of continuous usage. And this value gradually 
>>> increases with time.*
>>>                             9. The request list is processed in the 
>>> application
>>>                           10. The response object is created
>>>                       11. The response is sent to the client.
>>> Any suggestion would be highly appreciated.

You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To view this discussion on the web visit 
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to