Portál AbcLinuxu, 19. července 2025 01:29


Dotaz: C - jak zjistit zatez cpu0 ?

mikirc avatar 17.2.2010 12:38 mikirc | skóre: 19 | blog: MikiSoft | Vsetín
C - jak zjistit zatez cpu0 ?
Přečteno: 476×
Odpovědět | Admin
Zdravim jak by se dala zjistit okamzita zatez cpu0 ?? Pokud ne v C tak muze byt v C++. Pisu zamerne cpu0 protoze se jedna o 4jadro a me zajima zatez prvniho jadra. Diky
Byl jednou jeden...

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.2.2010 13:15 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: C - jak zjistit zatez cpu0 ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
/proc/stat ?
In Ada the typical infinite loop would normally be terminated by detonation.
mikirc avatar 17.2.2010 13:43 mikirc | skóre: 19 | blog: MikiSoft | Vsetín
Rozbalit Rozbalit vše Re: C - jak zjistit zatez cpu0 ?
wow a ktere cislo to je? :D

cpu0 155890 2195 36084 1031077 5519 0 11 0 0

cpu1 67585 223 16750 1187994 8374 0 12 0 0

cpu2 60751 17 13724 1163936 4738 2 8 0 0

cpu3 47362 7 8847 1177860 454 564 366 0 0

Byl jednou jeden...
17.2.2010 13:57 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: C - jak zjistit zatez cpu0 ?
Zkuste se překonat a nejprv to zkusit najít sám, TOHLE už opravdu složité není.
In Ada the typical infinite loop would normally be terminated by detonation.
17.2.2010 13:59 Antonín Kolísek | skóre: 33 | blog: PDA | Vyškov
Rozbalit Rozbalit vše Re: C - jak zjistit zatez cpu0 ?
Ty cisla znamenaji hodnotu: user, nice. system, idle, iowait, irq, softirq, steal. Jednotky jsou v USER_HZ / sec (napr 100 / s ). Takze by stacilo vzit aktualni pomer user,nice,system vuci idle.
18.2.2010 08:02 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: C - jak zjistit zatez cpu0 ?
Jednotky jsou v USER_HZ / sec (napr 100 / s ).
Pokud to potřebujete přesněji, tak /proc/timer_list
In Ada the typical infinite loop would normally be terminated by detonation.
17.2.2010 13:59 faha
Rozbalit Rozbalit vše Re: C - jak zjistit zatez cpu0 ?

Neni, staci najuknout do doc k jadru -> Documentation/filesystems/proc.txt

1.8 Miscellaneous kernel statistics in /proc/stat
-------------------------------------------------

Various pieces   of  information about  kernel activity  are  available in the
/proc/stat file.  All  of  the numbers reported  in  this file are  aggregates
since the system first booted.  For a quick look, simply cat the file:

> cat /proc/stat
cpu  2255 34 2290 22625563 6290 127 456 0
cpu0 1132 34 1441 11311718 3675 127 438 0
cpu1 1123 0 849 11313845 2614 0 18 0
intr 114930548 113199788 3 0 5 263 0 4 [... lots more numbers ...]
ctxt 1990473
btime 1062191376
processes 2915
procs_running 1
procs_blocked 0

The very first  "cpu" line aggregates the  numbers in all  of the other "cpuN"
lines.  These numbers identify the amount of time the CPU has spent performing
different kinds of work.  Time units are in USER_HZ (typically hundredths of a
second).  The meanings of the columns are as follows, from left to right:

- user: normal processes executing in user mode
- nice: niced processes executing in user mode
- system: processes executing in kernel mode
- idle: twiddling thumbs
- iowait: waiting for I/O to complete
- irq: servicing interrupts
- softirq: servicing softirqs
- steal: involuntary wait

The "intr" line gives counts of interrupts  serviced since boot time, for each
of the  possible system interrupts.   The first  column  is the  total of  all
interrupts serviced; each  subsequent column is the  total for that particular
interrupt.

The "ctxt" line gives the total number of context switches across all CPUs.

The "btime" line gives  the time at which the  system booted, in seconds since
the Unix epoch.

The "processes" line gives the number  of processes and threads created, which
includes (but  is not limited  to) those  created by  calls to the  fork() and
clone() system calls.

The  "procs_running" line gives the  number of processes  currently running on
CPUs.

The   "procs_blocked" line gives  the  number of  processes currently blocked,
waiting for I/O to complete.

18.2.2010 13:21 zulu
Rozbalit Rozbalit vše Re: C - jak zjistit zatez cpu0 ?
A man proc už nefunguje?
Řešení 1× (aaaaaaaaa)
Fuky avatar 17.2.2010 15:50 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: C - jak zjistit zatez cpu0 ?
Odpovědět | | Sbalit | Link | Blokovat | Admin

libstatgrab

/*                                  
 * i-scream libstatgrab             
 * http://www.i-scream.org          
 * Copyright (C) 2000-2004 i-scream 
 *                                  
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License  
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.        
 *                                                               
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 * GNU General Public License for more details.                   
 *                                                                
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software      
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *                                                                            
 * $Id: cpu_usage.c,v 1.11 2005/09/24 13:29:22 tdb Exp $                      
 */                                                                           

#include <stdio.h>
#include <statgrab.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char **argv){

        extern char *optarg;
        int c;              

        int delay = 1;
        sg_cpu_percents *cpu_percent;

        while ((c = getopt(argc, argv, "d:")) != -1){
                switch (c){                          
                        case 'd':
                                delay = atoi(optarg);
                                break;
                }
        }
#ifdef WIN32
        delay = delay * 1000;
#endif

        /* Initialise statgrab */
        sg_init();

        /* Drop setuid/setgid privileges. */
        if (sg_drop_privileges() != 0) {
                perror("Error. Failed to drop privileges");
                return 1;
        }

        /* Throw away the first reading as thats averaged over the machines uptime */
        sg_snapshot();
        cpu_percent = sg_get_cpu_percents();

        /* Clear the screen ready for display the cpu usage */
        printf("\033[2J");

        while( (cpu_percent = sg_get_cpu_percents()) != NULL){
                sg_snapshot();
                printf("\033[2;2H%-12s : %6.2f", "User CPU", cpu_percent->user);
                printf("\033[3;2H%-12s : %6.2f", "Kernel CPU", cpu_percent->kernel);
                printf("\033[4;2H%-12s : %6.2f", "IOWait CPU", cpu_percent->iowait);
                printf("\033[5;2H%-12s : %6.2f", "Swap CPU", cpu_percent->swap);
                printf("\033[6;2H%-12s : %6.2f", "Nice CPU", cpu_percent->nice);
                printf("\033[7;2H%-12s : %6.2f", "Idle CPU", cpu_percent->idle);
                fflush(stdout);
                sleep(delay);
        }
        sg_shutdown();

        exit(0);
}
-- RÁMO: psí tábor , ETriatlon: Výuka plavání

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.