If running with '-P', would it be possible to only do flush for the sum report ? I'm typically running with "--interval 0.1 --parallel 1024", and I'm worried about the potential performance implications.
Thanks in advance !
Jean
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I tried to do it myself, but I could not make it work on the server. So, I went with a completely different approach with a command line option.
You will need to apply the first patch in all case, because sum TransferID has been broken in commit e0b803595420fe03054ff93f38ed65c0b84e6437.
The second patch, you may just read it for your own amusement ;-)
Regards,
Jean
~~~
+
+//
+// flush when
+//
+// o) there is a sum report and one or less traffic threads
+// o) this is the sum report (all preceding interval reports need flush)
+// o) there isn't a sum report
+// o) report interval is one second or greater
+//
+static inline void check_flush (struct TransferInfo *stats) {
if ((!(stats->ts.intervalTime.tv_sec < 1) || !stats->sumreport) || \
Thanks, I will.
That's quite the heuristic. I'm personally not sure about the "report interval is one second or greater", because I can not see cases where you need to flush for each individual thread, and it's quite inefficient to flush all lines...
Thanks !
Jean
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm also wondering if it would be possible to make this a static test when creating the report, instead of a dynamic test, for performance reasons.
Regards,
Jean
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I decided to change the conditions to the following. Commit is here.
The server side doesn't know at report creation the number of threads to sum. That's why the test is dynamic. The code in active_hosts.c (sourceforge.net) assigns the sum reports to new threads from the same source.
//// flush when//// o) it's a final report// o) this is the sum report (all preceding interval reports need flush)// o) the time since the last flush is equal or larger to the smallest allowed report interval//
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Code commit is here. (sourceforge.net)
[rjmcmahon@fedora iperf2-code]$ src/iperf -v
iperf version 2.1.n (5 December 2023) pthreads
If running with '-P', would it be possible to only do flush for the sum report ? I'm typically running with "--interval 0.1 --parallel 1024", and I'm worried about the potential performance implications.
Thanks in advance !
Jean
Ok, this makes sense. I'll fix it.
I tried to do it myself, but I could not make it work on the server. So, I went with a completely different approach with a command line option.
You will need to apply the first patch in all case, because sum TransferID has been broken in commit e0b803595420fe03054ff93f38ed65c0b84e6437.
The second patch, you may just read it for your own amusement ;-)
Regards,
Jean
Here is the new flush test. Commit is in master.
Can you try it and make sure it works ok for you?
~~~
+
+//
+// flush when
+//
+// o) there is a sum report and one or less traffic threads
+// o) this is the sum report (all preceding interval reports need flush)
+// o) there isn't a sum report
+// o) report interval is one second or greater
+//
+static inline void check_flush (struct TransferInfo *stats) {
+}
+~~~
Thanks, I will.
That's quite the heuristic. I'm personally not sure about the "report interval is one second or greater", because I can not see cases where you need to flush for each individual thread, and it's quite inefficient to flush all lines...
Thanks !
Jean
Quick test shows it work as you intended.
Thanks !
Jean
I'm also wondering if it would be possible to make this a static test when creating the report, instead of a dynamic test, for performance reasons.
Regards,
Jean
I decided to change the conditions to the following. Commit is here.
The server side doesn't know at report creation the number of threads to sum. That's why the test is dynamic. The code in active_hosts.c (sourceforge.net) assigns the sum reports to new threads from the same source.