Replies: 4 comments 1 reply
-
Hi @minminlittleshrimp, could dlt-daemon maintainers provide feedback regarding this point? @goodbenya and I are working on the same project, so I can be considered a co-author of this question. )) Despite my attempts to point to the General Rules for Logging article, my management is frequently asking me regarding why we can't send more than 5-6k messages per second? After that point, we start to lose some of the messages. In this respect, I have the following questions:
Please understand me. I know the difference between logging tools and tracing tools. They have different purposes, and my idea is to prove to my management that we should separate the collection of low-level data ( data from IP blocks, processor registers, etc. ) to the Perfetto and not use DLT there. For our project, we've created a facade on top of the DLT Log API, and we can extend it with some additional calls that will use the Perfetto API under the hood. This topic is more about collecting the arguments for why it should be done this way. On the other hand, many messages can be received even from the dlt-logd-converter in Android. So, having an understanding of the limitations is essential from multiple perspectives. I'll appreciate any feedback! I'm looking forward to getting it. )) |
Beta Was this translation helpful? Give feedback.
-
Hi all, I've spent some time investigating this topic more deeply on my side. It occurred that there are no strict limitations, as I've stated before. There is no 5-6k message per second limitation. Here are some test results. On my local Ubuntu machine, I was able to get the following statistics:
Around 125000 messages per second and 17.4 Mbytes / second. In the specific simulation environment ( simulation inside Docker that is inside Ubuntu OS ) I got such results:
Around 83333 messages per second and 12.5 Mbytes / second. On the project's target board:
Around 23809 messages per second and 3.3 Mbytes / second. My initial results on the target board were:
I had much smaller values — only 3924 messages per second. But that was caused by the fact that I was collecting data through the dlt-viewer while using my company's VPN to connect to the remote board. The VPN connection was limiting the maximum bandwidth. From my understanding, that was causing:
So, the limitations of sending too many messages in my case were:
If someone's is interested in maximization of the number of printed messages:
To be clear, this topic is just an investigation of what is possible, and we should all try to follow the General Rules for Logging. If anyone asks, "Can I use DLT for data tracing?" You can answer, "No!" The main technical reason is that DLT has a time precision limitation. It uses a tenth of a millisecond while tracing requires nanoseconds. You will end up with the following situation: For our project, we finally concluded that DLT as a logging tool is quite performant, still found an answer as to why we WILL NOT use it for high-frequent data. We are considering using Perfetto to collect tracing data for some of our target OSs. DLT will be used, but only for logging. This topic can be considered as "Closed". )) |
Beta Was this translation helpful? Give feedback.
-
I've found this dlt-daemon discussion with your answers that uncovered ( for me ) a feature to support nanoseconds timestamp precision in DLT:
As far as I know, the dlt-viewer already supports dlt protocol V2. What about the dlt-daemon? Does it also support working with protocol V2? If not, is there any plan for when it will be supported? |
Beta Was this translation helpful? Give feedback.
-
Hello @svlad-90 Hello @michael-methner |
Beta Was this translation helpful? Give feedback.
-
Hello everyone,
I'm reaching out to see if anyone knows how many messages the DLT daemon can handle in a second?
For example:
Imagine we're continuously sending different 200-character messages to the DLT daemon non-stop.
Are there any settings – maybe in the config files or the code itself – that we could adjust to incrise the number of messages the daemon can process every second?
We're already using DLT in our project for logging and it's working great. But we're planning to start tracing from the system level, which will mean dealing with more than ~100K messages per second.
Beta Was this translation helpful? Give feedback.
All reactions