Sponsored Content
Operating Systems Solaris Understanding & Monitoring CPU performance (Load vs SAR) Post 302974895 by javanoob on Sunday 5th of June 2016 09:25:46 PM
Old 06-05-2016
Hi Jilliagre,

Once again, thanks for your reply and truly appreciate your time.

Quote:
It might mean that, but not necessarily. Could be also ten processes all repeating this pattern : fighting to get the CPU during 1 second then idling for 9 seconds.
q1) Do you mean the 10 processes fighting to get the CPU at the same time ?
I would then expect to see a load of 9 (in queue) + 1 (running) and have 100% CPU utilization for that 1 minute.

- Am I right ?

Quote:
Quote:
In a nutshell, if i have 6 core cpu (12 thread total), and i have a average load of 3 most of the time;
Can i expect my CPU utilization to be around 3/12 * 100 = 25% (when the load is 3) ?
That's only one eventuality.
q2) Can you elaborate on this further ? Why is it 1 ?

q3) Should hyperthreading be taken into consideration when measuring load ?
- 6 core ; point of saturation -> 6 (can take load up to 6) or
- 6 core but 12 thread; point of saturation -> 12 (can take load up to 12)

Regards,
Noob
 

10 More Discussions You Might Find Interesting

1. HP-UX

sar output gives 98% idle CPU

Dear All, Our HPUX 8 GB 8CPU database server is behaving abnormally for the last 4+ weeks. I have generated a sar output and it is here- 11:46:52 %usr %sys %wio %idle 11:46:53 1 1 6 92 11:46:54 0 1 0 99 11:46:55 0 1 0... (3 Replies)
Discussion started by: Ashrunil
3 Replies

2. UNIX for Dummies Questions & Answers

CPU utilization: sar vs ps

Any reason why the "sum of all" average cpu utilization numbers collected from ps during any given time sample are "consistently" lower than the corresponding numbers reported by sar (%usr, %sys). We have a Solaris O/S 2.8. We have been trying to correlate the CPU numbers from the sar, to the... (0 Replies)
Discussion started by: sevpert
0 Replies

3. Solaris

sar : insufficient address space to load xxxx device records

Hello, i am using Solaris 10, The sar running in my system might be corrupted, but not sure why as there has been no updates to it ( to the best of my knowledge) and it was working fine until few days back. If i try to get sar reports using sar -o <filename> 60 180 there is no error but the... (2 Replies)
Discussion started by: nimi20
2 Replies

4. Shell Programming and Scripting

awk & CPU Load

Deal All, I'm writing a simple awk to generate some sort of report. The awk will check 24 files (file generated each one hour in a wholoe day) and then it will print one field to another file for counting purposes. The script is working fine but the problem is that the CPU load is very high... (10 Replies)
Discussion started by: charbel
10 Replies

5. Shell Programming and Scripting

Setup of sar command for CPU measures

I receive on a daily basis CPU measures on a UNIX Server (AIX 5.3 version, korn shell). These CPU measures are provided by Omnivision tool. We could see that Omnivision daily stats are not always equal to NMON stats regarding CPU level. On my side (I work in an IT Production Support Team, not... (0 Replies)
Discussion started by: Scofield38
0 Replies

6. SuSE

SUSE 11.4 sar monitoring not run by default.

Hi, I had installed sysstat package below on a SUSE 11.4 box. I can see the sysstat cron file listed under the directory /etc/sysstat. However, it looks like the sysstat sar monitor is never run at all and the daily sar files are not created under the directory /var/log/sa. The cron daemon is also... (1 Reply)
Discussion started by: devtakh
1 Replies

7. AIX

Using sar to get CPU utilization for WPARs

Based on the documentation (Help - AIX 6.1 Information Center), I should be able to get the CPU utilization on a WPAR. But when I ran sar on the LPAR, I don't see the -@ option: Usage: sar { -A | } ]] ]] | ALL] ] ] I'm on AIX 6.1. ... (0 Replies)
Discussion started by: PPPP
0 Replies

8. Shell Programming and Scripting

One script for Linux Monitoring-free, sar, vmstat, mpstat

HI , I am wrirting a script for checking the performance monitoring on Linux System when my application is running. I have to run a test for 30 minutes on some server and while the test is running i have to capture the perfromance metrics of Linux through vmstat , sar, mpstat, free. here is the... (3 Replies)
Discussion started by: Anamica
3 Replies

9. UNIX for Dummies Questions & Answers

CPU load in video decoding using SAR

Hi, I'm John_giova and I'm new in this Forum. Sorry my english, it's not my first language. So, I'm trying to check the CPU utlization during the video encoding and decoding (making a comparison between SW and HW ) using the SAR tool. According to a past thread I saw as CPU utilization I should... (4 Replies)
Discussion started by: John_giova
4 Replies

10. Solaris

Help me Solaris 10&11 cpu load average states for 24 hours report

need to capture the following data on an hourly basis without cronjob scheduling in Solaris 5.10/5.11:- 1. load averages 2. Total no. of processes. 3. CPU state 4. Memory 5. Top 3 process details. any other third-party tool is available? (7 Replies)
Discussion started by: thoranam
7 Replies
SCHEDULER(9)						   BSD Kernel Developer's Manual					      SCHEDULER(9)

NAME
curpriority_cmp, maybe_resched, resetpriority, roundrobin, roundrobin_interval, sched_setup, schedclock, schedcpu, setrunnable, updatepri -- perform round-robin scheduling of runnable processes SYNOPSIS
#include <sys/param.h> #include <sys/proc.h> int curpriority_cmp(struct proc *p); void maybe_resched(struct thread *td); void propagate_priority(struct proc *p); void resetpriority(struct ksegrp *kg); void roundrobin(void *arg); int roundrobin_interval(void); void sched_setup(void *dummy); void schedclock(struct thread *td); void schedcpu(void *arg); void setrunnable(struct thread *td); void updatepri(struct thread *td); DESCRIPTION
Each process has three different priorities stored in struct proc: p_usrpri, p_nativepri, and p_priority. The p_usrpri member is the user priority of the process calculated from a process' estimated CPU time and nice level. The p_nativepri member is the saved priority used by propagate_priority(). When a process obtains a mutex, its priority is saved in p_nativepri. While it holds the mutex, the process's priority may be bumped by another process that blocks on the mutex. When the process releases the mutex, then its priority is restored to the priority saved in p_nativepri. The p_priority member is the actual priority of the process and is used to determine what runqueue(9) it runs on, for example. The curpriority_cmp() function compares the cached priority of the currently running process with process p. If the currently running process has a higher priority, then it will return a value less than zero. If the current process has a lower priority, then it will return a value greater than zero. If the current process has the same priority as p, then curpriority_cmp() will return zero. The cached priority of the currently running process is updated when a process resumes from tsleep(9) or returns to userland in userret() and is stored in the private variable curpriority. The maybe_resched() function compares the priorities of the current thread and td. If td has a higher priority than the current thread, then a context switch is needed, and KEF_NEEDRESCHED is set. The propagate_priority() looks at the process that owns the mutex p is blocked on. That process's priority is bumped to the priority of p if needed. If the process is currently running, then the function returns. If the process is on a runqueue(9), then the process is moved to the appropriate runqueue(9) for its new priority. If the process is blocked on a mutex, its position in the list of processes blocked on the mutex in question is updated to reflect its new priority. Then, the function repeats the procedure using the process that owns the mutex just encountered. Note that a process's priorities are only bumped to the priority of the original process p, not to the priority of the previously encountered process. The resetpriority() function recomputes the user priority of the ksegrp kg (stored in kg_user_pri) and calls maybe_resched() to force a reschedule of each thread in the group if needed. The roundrobin() function is used as a timeout(9) function to force a reschedule every sched_quantum ticks. The roundrobin_interval() function simply returns the number of clock ticks in between reschedules triggered by roundrobin(). Thus, all it does is return the current value of sched_quantum. The sched_setup() function is a SYSINIT(9) that is called to start the callout driven scheduler functions. It just calls the roundrobin() and schedcpu() functions for the first time. After the initial call, the two functions will propagate themselves by registering their call- out event again at the completion of the respective function. The schedclock() function is called by statclock() to adjust the priority of the currently running thread's ksegrp. It updates the group's estimated CPU time and then adjusts the priority via resetpriority(). The schedcpu() function updates all process priorities. First, it updates statistics that track how long processes have been in various process states. Secondly, it updates the estimated CPU time for the current process such that about 90% of the CPU usage is forgotten in 5 * load average seconds. For example, if the load average is 2.00, then at least 90% of the estimated CPU time for the process should be based on the amount of CPU time the process has had in the last 10 seconds. It then recomputes the priority of the process and moves it to the appropriate runqueue(9) if necessary. Thirdly, it updates the %CPU estimate used by utilities such as ps(1) and top(1) so that 95% of the CPU usage is forgotten in 60 seconds. Once all process priorities have been updated, schedcpu() calls vmmeter() to update various other sta- tistics including the load average. Finally, it schedules itself to run again in hz clock ticks. The setrunnable() function is used to change a process's state to be runnable. The process is placed on a runqueue(9) if needed, and the swapper process is woken up and told to swap the process in if the process is swapped out. If the process has been asleep for at least one run of schedcpu(), then updatepri() is used to adjust the priority of the process. The updatepri() function is used to adjust the priority of a process that has been asleep. It retroactively decays the estimated CPU time of the process for each schedcpu() event that the process was asleep. Finally, it calls resetpriority() to adjust the priority of the process. SEE ALSO
mi_switch(9), runqueue(9), sleepqueue(9), tsleep(9) BUGS
The curpriority variable really should be per-CPU. In addition, maybe_resched() should compare the priority of chk with that of each CPU, and then send an IPI to the processor with the lowest priority to trigger a reschedule if needed. Priority propagation is broken and is thus disabled by default. The p_nativepri variable is only updated if a process does not obtain a sleep mutex on the first try. Also, if a process obtains more than one sleep mutex in this manner, and had its priority bumped in between, then p_nativepri will be clobbered. BSD
November 3, 2000 BSD
All times are GMT -4. The time now is 01:35 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy