Efficient logging of time measurements


 
Thread Tools Search this Thread
Top Forums Programming Efficient logging of time measurements
# 8  
Old 02-07-2013
Linux Initial solution

achenle,

Thanks for quite detailed response.

I was thinking about a similar solution. Apart from getting logs in string format, syslogd process works in similar fashion. Which mandates lot of context switches between syslogd process and measured process.

I am thinking of creating a thread to do logging rather than a process, so as to reduce process context switch.

Any comments?

I decided to go with the binary structure.

Which one will be better to send measurements from measured thread to logging thread?
Shared memory with mutex or Non blocking messages(pipe,...)

/Tamil
# 9  
Old 02-07-2013
I think because you are using a binary struct it will write the data as a reserved block in the pipe and you won't need mutex because the data won't overlap.
I may be wrong about that.
# 10  
Old 02-07-2013
Linux

Venam,

Mutex should be used in the case of shared memory.

For instance, an external structure array can be updated by measured thread and read(remove) by logging thread ( with mutex to avoid race condition)

I agree, there is no need of mutex in case of message transmission.

/Tamil
# 11  
Old 02-07-2013
Quote:
Originally Posted by tamil.pamaran
Which one will be better to send measurements from measured thread to logging thread?
Shared memory with mutex or Non blocking messages(pipe,...)
Well that would depend on what exact 'shared memory' model you are going to use and frequency of the logging code. Also you might want to consider sampling algorithm if the code runs at very high frequency on a production platform, that basically means that you only measure every Nth run and its much more suitable for logging for extended amount of time a piece of code that is very frequent.

Another suggestion:
Sometimes real time execution results can be not very meaningful for fast sections of code due to thread scheduler making them apear random on a busy system, you should probably instead log CPU time (CPU Time - The GNU C Library) as it has more meaning.
# 12  
Old 02-09-2013
Quote:
Originally Posted by tamil.pamaran
achenle,

Thanks for quite detailed response.

I was thinking about a similar solution. Apart from getting logs in string format, syslogd process works in similar fashion. Which mandates lot of context switches between syslogd process and measured process.

I am thinking of creating a thread to do logging rather than a process, so as to reduce process context switch.

Any comments?

I decided to go with the binary structure.

Which one will be better to send measurements from measured thread to logging thread?
Shared memory with mutex or Non blocking messages(pipe,...)

/Tamil
Well, you'd probably wind up blocking on the mutex at times, while you should never block on the write.

Also, if you do your logging in a separate process, if there's a bug in it that causes a process crash (SEGV, etc), then you won't bring down your production process(s).

Compare that against the context switching needed for a separate process.

Without knowing your hardware and software, I can't really comment on which would be better for you and your processing.
# 13  
Old 03-09-2013
Linux

Thanks achenle and expl,

Sorry for the delayed reply.

Since the measurement is done for research prototype, its very controlled process. Hence I decided to go for mutex based solution. In a process, many threads are measured (thread logs time taken by them to an dynamic array) and a one thread removes elements from array and writes to a log file.

Since measurement tends to get the system performance, I decided to use time(NULL) to log the time. Any suggestions?

/T
# 14  
Old 03-09-2013
If accuracy down to just a second is good enough, that'll work. If you need or want more accuracy, you can use "clock_gettime()", assuming you're running on a Linux-based system. On Solaris or HPUX you could use "gethrtime()".

Those would give you timestamps down to nanoseconds, although they are probably not that accurate in reality.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Linux

Syslog not logging successful logging while unlocking server's console

When unlocking a Linux server's console there's no event indicating successful logging Is there a way I can fix this ? I have the following in my rsyslog.conf auth.info /var/log/secure authpriv.info /var/log/secure (1 Reply)
Discussion started by: walterthered
1 Replies

2. Shell Programming and Scripting

Help with Efficient Looping

Hello guys My requirement is to read a file with parent-child relationship we need to iterate through each row to find its latest child. for eg. parent child ABC PQR PQR DEF DEF XYZ Expected Output ABC XYZ PQR XYZ DEF XYZ Script Logic : read parent from file seach child... (4 Replies)
Discussion started by: joshiamit
4 Replies

3. UNIX for Advanced & Expert Users

Efficient way to grep

Hi Experts, I've been trying simple grep to search for a string in a huge number of files in a directory. grep <pattern> * this gives the search results as well as the following - grep: <filename>: Permission denied grep: <filename>: Permission denied for files which I don't have... (4 Replies)
Discussion started by: sumoka
4 Replies

4. Post Here to Contact Site Administrators and Moderators

Constant Logging In (After Logging Out)

Hi Everyone. First, I want to thank all of you for letting me participate in this great group. I am having a bit of a problem. After I get an email from a responder, I login to make my reply. In the mean time I get another response by email from another member, I go to reply to them and I... (6 Replies)
Discussion started by: Ccccc
6 Replies

5. UNIX for Advanced & Expert Users

efficient repace

some of the data i receive has been typed in manually due to which there are often places where i find 8 instead of ( and the incorrect use of case what according to you is the best way to correct such data. The data has around 20,000 records. The value i want to change is in the 4th field.... (2 Replies)
Discussion started by: VGR
2 Replies

6. Shell Programming and Scripting

Is there a way to make this more efficient

I have the following code. printf "Test Message Report" > report.txt while read line do msgid=$(printf "%n" "$line" | cut -c1-6000| sed -e 's///g' -e 's|.*ex:Msg\(.*\)ex:Msg.*|\1|') putdate=$(printf "%n" "$line" | cut -c1-6000| sed -e 's///g' -e 's|.*PutDate\(.*\)PutTime.*|\1|')... (9 Replies)
Discussion started by: gugs
9 Replies

7. Shell Programming and Scripting

Can you suggest a more efficient way for this?

Hi I have the following at the end of a service shutdown script used in part of an active-passive failover setup: ### # Shutdown all primary Network Interfaces # associated with failover ### # get interface names based on IP's # and shut them down to simulate loss of # heartbeatd ... (1 Reply)
Discussion started by: mikie
1 Replies

8. Shell Programming and Scripting

Efficient way of Awk

Hi, Can someone let me know if the below AWK can be made much simpler / efficient ? I have 200 fields, I need to substr only the last fields. So i'm printing awk -F~ 'print {$1, $2, $3....................................$196,$197 , susbstr($198,1,3999), substr($199,1,3999)..}' Is there a... (4 Replies)
Discussion started by: braindrain
4 Replies

9. Shell Programming and Scripting

Is there a more efficient way?

I'm using korn shell to connect to oracle, retrieve certain values, put them in a list, and iterate through them. While this method works, I can't help but think there is an easier method. If you know of one, please suggest a shorter, more efficient method. ############### FUNCTIONS ... (6 Replies)
Discussion started by: SelectSplat
6 Replies

10. UNIX for Advanced & Expert Users

Efficient Dispatching

Does anyone know what's new with Efficient dispatching in the Solaris 2.8 release (vs Solaris 2.6) release? Specifically, does anyone know of a good website to get detailed information on thread dispatching using efficient dispatching in solaris 2.8? Thank you. (1 Reply)
Discussion started by: uchachra
1 Replies
Login or Register to Ask a Question