Added bitbucket.org/bertimus9/systemstat to godeps

pull/6/head
Ewa Socala 2015-08-12 11:04:06 +02:00
parent e9b6b00ade
commit e48d4d71ac
28 changed files with 914 additions and 0 deletions

4
Godeps/Godeps.json generated
View File

@ -5,6 +5,10 @@
"./..."
],
"Deps": [
{
"ImportPath": "bitbucket.org/bertimus9/systemstat",
"Rev": "1468fd0db20598383c9393cccaa547de6ad99e5e"
},
{
"ImportPath": "bitbucket.org/ww/goautoneg",
"Comment": "null-5",

View File

@ -0,0 +1,25 @@
# Compiled Object files, Static and Dynamic libs (Shared Objects)
*.o
*.a
*.so
# Folders
_obj
_test
# Architecture specific extensions/prefixes
*.[568vq]
[568vq].out
*.cgo1.go
*.cgo2.c
_cgo_defun.c
_cgo_gotypes.go
_cgo_export.*
_testmain.go
*.exe
*.swp
*.swo

View File

@ -0,0 +1 @@
[Phillip](http://bitbucket.org/bertimus9) <bertimus9@gmail.com>

View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2013 Phillip Bond
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -0,0 +1,8 @@
test:
gofmt -s -w .
go test ./...
go get bitbucket.org/bertimus9/systemstat
coverage:
go get github.com/axw/gocov/gocov
gocov test . | gocov report

View File

@ -0,0 +1,69 @@
# systemstat
[Documentation online](http://godoc.org/bitbucket.org/bertimus9/systemstat)
**systemstat** is a package written in Go generated automatically by `gobi`.
**systemstat** allows you to add system statistics to your go program; it
currently polls the linux kernel for CPU usage, free/used memory and swap
sizes, and uptime for your go process, as well as the system you're running it
on, and the system load. It can be used to make a crippled version of top that
monitors the current go process and ignores other processes and the number of
users with ttys. See the examples directory for go-top.go, which is my attempt
at a top clone. Bear in mind that the intention of **systemstat** is to allow
your process to monitor itself and it's environment, not to replace top.
## Install (with GOPATH set on your machine)
----------
* Step 1: Get the `systemstat` package
```
go get bitbucket.org/bertimus9/systemstat
```
* Step 2 (Optional): Run tests
```
$ go test -v bitbucket.org/bertimus9/systemstat
```
* Step 3 (Optional): Run example
```bash
$ cd to the first directory in your $GOPATH
$ cd src/bitbucket.org/bertimus9/systemstat
$ go run examples/go-top.go
```
##Usage
----------
```
package main
import (
"bitbucket.org/bertimus9/systemstat"
"fmt"
)
var sample systemstat.MemSample
// This example shows how easy it is to get memory information
func main() {
sample = systemstat.GetMemSample()
fmt.Println("Total available RAM in kb:", sample.MemTotal, "k total")
fmt.Println("Used RAM in kb:", sample.MemUsed, "k used")
fmt.Println("Free RAM in kb:", sample.MemFree, "k free")
fmt.Printf("The output is similar to, but somewhat different than:\n\ttop -n1 | grep Mem:\n")
}
```
##License
----------
Copyright (c) 2013 Phillip Bond
Licensed under the MIT License
see file LICENSE

View File

@ -0,0 +1 @@
0.0.1

View File

@ -0,0 +1,21 @@
// Copyright (c) 2013 Phillip Bond
// Licensed under the MIT License
// see file LICENSE
package systemstat_test
import (
"bitbucket.org/bertimus9/systemstat"
"fmt"
)
var sample systemstat.MemSample
// This example shows how easy it is to get memory information
func Example_simple() {
sample = systemstat.GetMemSample()
fmt.Println("Total available RAM in kb:", sample.MemTotal, "k total")
fmt.Println("Used RAM in kb:", sample.MemUsed, "k used")
fmt.Println("Free RAM in kb:", sample.MemFree, "k free")
fmt.Printf("The output is similar to, but somewhat different than:\n\ttop -n1 | grep Mem:\n")
}

View File

@ -0,0 +1,211 @@
// Copyright (c) 2013 Phillip Bond
// Licensed under the MIT License
// see file LICENSE
package main
// go-top
//
// A sample program that emulates the way gnu top gets most of its
// information. It does not get information about other processes, just the
// calling process.
//
// To demonstrate how the output changes, you can invoke with the
// -coresToPeg=N option. For example:
//
// go run go-top.go -coresToPeg=2
//
// will run two concurrent infinte loops and max out up to two cores (assuming
// you have more than one core). Note that the loops are not tuned to always
// hit 100% on all machines, but they get close. Also note that each core you
// want to max out will add up to 100% CPU usage to this process, but you will
// get less than 100% per core if there are other processes using the CPU, or
// if the kernel is suffering high load averages, etc.
//
// %CCPU measures cumulative CPU usage. It is useful when you have a daemon
// that only runs periodically, but does intense calculations. You can use
// long sample times, on the order of minutes, but still get an accurate
// measure of how much CPU time has been used over the life of the process,
// even if your samples occur when the CPU is temporarily idle.
import (
"bitbucket.org/bertimus9/systemstat"
"bytes"
"encoding/json"
"flag"
"fmt"
"math"
"runtime"
"time"
)
var coresToPegPtr *int64
type stats struct {
startTime time.Time
// stats this process
ProcUptime float64 //seconds
ProcMemUsedPct float64
ProcCPUAvg systemstat.ProcCPUAverage
LastProcCPUSample systemstat.ProcCPUSample `json:"-"`
CurProcCPUSample systemstat.ProcCPUSample `json:"-"`
// stats for whole system
LastCPUSample systemstat.CPUSample `json:"-"`
CurCPUSample systemstat.CPUSample `json:"-"`
SysCPUAvg systemstat.CPUAverage
SysMemK systemstat.MemSample
LoadAverage systemstat.LoadAvgSample
SysUptime systemstat.UptimeSample
// bookkeeping
procCPUSampled bool
sysCPUSampled bool
}
func NewStats() *stats {
s := stats{}
s.startTime = time.Now()
return &s
}
func (s *stats) PrintStats() {
up, err := time.ParseDuration(fmt.Sprintf("%fs", s.SysUptime.Uptime))
upstring := "SysUptime Error"
if err == nil {
updays := up.Hours() / 24
switch {
case updays >= 365:
upstring = fmt.Sprintf("%.0f years", updays/365)
case updays >= 1:
upstring = fmt.Sprintf("%.0f days", updays)
default: // less than a day
upstring = up.String()
}
}
fmt.Println("*********************************************************")
fmt.Printf("go-top - %s up %s,\t\tload average: %.2f, %.2f, %.2f\n",
s.LoadAverage.Time.Format("15:04:05"), upstring, s.LoadAverage.One, s.LoadAverage.Five, s.LoadAverage.Fifteen)
fmt.Printf("Cpu(s): %.1f%%us, %.1f%%sy, %.1f%%ni, %.1f%%id, %.1f%%wa, %.1f%%hi, %.1f%%si, %.1f%%st %.1f%%gu\n",
s.SysCPUAvg.UserPct, s.SysCPUAvg.SystemPct, s.SysCPUAvg.NicePct, s.SysCPUAvg.IdlePct,
s.SysCPUAvg.IowaitPct, s.SysCPUAvg.IrqPct, s.SysCPUAvg.SoftIrqPct, s.SysCPUAvg.StealPct,
s.SysCPUAvg.GuestPct)
fmt.Printf("Mem: %9dk total, %9dk used, %9dk free, %9dk buffers\n", s.SysMemK.MemTotal,
s.SysMemK.MemUsed, s.SysMemK.MemFree, s.SysMemK.Buffers)
fmt.Printf("Swap: %9dk total, %9dk used, %9dk free, %9dk cached\n", s.SysMemK.SwapTotal,
s.SysMemK.SwapUsed, s.SysMemK.SwapFree, s.SysMemK.Cached)
fmt.Println("************************************************************")
if s.ProcCPUAvg.PossiblePct > 0 {
cpuHelpText := "[see -help flag to change %cpu]"
if *coresToPegPtr > 0 {
cpuHelpText = ""
}
fmt.Printf("ProcessName\tRES(k)\t%%CPU\t%%CCPU\t%%MEM\n")
fmt.Printf("this-process\t%d\t%3.1f\t%2.1f\t%3.1f\t%s\n",
s.CurProcCPUSample.ProcMemUsedK,
s.ProcCPUAvg.TotalPct,
100*s.CurProcCPUSample.Total/s.ProcUptime/float64(1),
100*float64(s.CurProcCPUSample.ProcMemUsedK)/float64(s.SysMemK.MemTotal),
cpuHelpText)
fmt.Println("%CCPU is cumulative CPU usage over this process' life.")
fmt.Printf("Max this-process CPU possible: %3.f%%\n", s.ProcCPUAvg.PossiblePct)
}
}
func (s *stats) GatherStats(percent bool) {
s.SysUptime = systemstat.GetUptime()
s.ProcUptime = time.Since(s.startTime).Seconds()
s.SysMemK = systemstat.GetMemSample()
s.LoadAverage = systemstat.GetLoadAvgSample()
s.LastCPUSample = s.CurCPUSample
s.CurCPUSample = systemstat.GetCPUSample()
if s.sysCPUSampled { // we need 2 samples to get an average
s.SysCPUAvg = systemstat.GetCPUAverage(s.LastCPUSample, s.CurCPUSample)
}
// we have at least one sample, subsequent rounds will give us an average
s.sysCPUSampled = true
s.ProcMemUsedPct = 100 * float64(s.CurProcCPUSample.ProcMemUsedK) / float64(s.SysMemK.MemTotal)
s.LastProcCPUSample = s.CurProcCPUSample
s.CurProcCPUSample = systemstat.GetProcCPUSample()
if s.procCPUSampled {
s.ProcCPUAvg = systemstat.GetProcCPUAverage(s.LastProcCPUSample, s.CurProcCPUSample, s.ProcUptime)
}
s.procCPUSampled = true
}
func main() {
// get command line flags
coresToPegPtr = flag.Int64("coresToPeg", 0, "how many CPU cores would you like to artificially peg to 100% usage")
flag.Parse()
// this will help us poll the OS to get system statistics
stats := NewStats()
runtime.GOMAXPROCS(runtime.NumCPU())
// WARNING: each call to burnCPU() will peg one core
// of your machine to 100%
// If you have code you'd like to drop in to this example,
// just run "go yourCode()" instead of "go burnCPU()
for i := *coresToPegPtr; i > 0; i-- {
fmt.Println("pegging one more CPU core.")
go burnCPU()
}
for {
stats.GatherStats(true)
stats.PrintStats()
// This next line lets out see the jsonified object
// produced by systemstat
// printJson(stats, false)
time.Sleep(3 * time.Second)
}
}
func printJson(s *stats, indent bool) {
b, err := json.Marshal(s)
if err != nil {
fmt.Println("error:", err)
}
dst := new(bytes.Buffer)
if indent {
json.Indent(dst, b, "", " ")
} else {
dst.Write(b)
}
fmt.Println(dst.String())
time.Sleep(time.Second * 3)
}
func burnCPU() {
time.Sleep(4 * time.Second)
for {
b := 1.0
c := 1.0
d := 1.0
for j := 1; j < 1000; j++ {
b *= float64(j)
for k := 1; k < 700000; k++ {
c *= float64(k)
d = (28 + b*b/3.23412) / math.Sqrt(c*c)
c *= d
}
time.Sleep(500 * time.Nanosecond)
runtime.Gosched()
}
time.Sleep(10 * time.Second)
}
}

View File

@ -0,0 +1,141 @@
// Copyright (c) 2013 Phillip Bond
// Licensed under the MIT License
// see file LICENSE
package systemstat
import (
"time"
)
// CPUSample is an object that represents the breakdown of time spent by the
// CPU in various types of tasks. Two CPUSamples are required to find the
// average usage over time, represented by the CPUAverage object. The CPUSample
// is taken from the line "cpu" from /proc/stat in the Linux kernel.
//
// Summarized from the proc(5) man page:
// /proc/stat :
// kernel/system statistics. Varies with architecture.
type CPUSample struct {
User uint64 // time spent in user mode
Nice uint64 // time spent in user mode with low priority (nice)
System uint64 // time spent in system mode
Idle uint64 // time spent in the idle task
Iowait uint64 // time spent waiting for I/O to complete (since Linux 2.5.41)
Irq uint64 // time spent servicing interrupts (since 2.6.0-test4)
SoftIrq uint64 // time spent servicing softirqs (since 2.6.0-test4)
Steal uint64 // time spent in other OSes when running in a virtualized environment
Guest uint64 // time spent running a virtual CPU for guest operating systems under the control of the Linux kernel.
Name string // name of the line in /proc/stat; cpu, cpu1, etc
Time time.Time // when the sample was taken
Total uint64 // total of all time fields
}
type ProcCPUSample struct {
User float64 // time spent in user mode
System float64 // time spent in system mode
Time time.Time // when the sample was taken
Total float64 // total of all time fields
ProcMemUsedK int64
}
type ProcCPUAverage struct {
UserPct float64 // time spent in user mode
SystemPct float64 // time spent in system mode
TotalPct float64 // total of all time fields
PossiblePct float64 // total of all time fields
CumulativeTotalPct float64 // total of all time throughout process life
Time time.Time // when the sample was taken
Seconds float64 // how many seconds between the two samples
}
// SimpleCPUAverage is an object that represents the average cpu usage over a
// time period. It is calculated by taking the difference between two
// CPUSamples (whose units are clock ticks), dividing by the number of elapsed
// ticks between the samples, and converting to a percent. It is a simplified version of the CPUAverage in that it only accounts for time in the Idle task and all other time (Busy).
type SimpleCPUAverage struct {
BusyPct float64 // percent of time spent by CPU performing all non-idle tasks
IdlePct float64 // percent of time spent by CPU in the idle task
}
// CPUAverage is an object that represents the average cpu usage over a
// time period. It is calculated by taking the difference between two
// CPUSamples (whose units are clock ticks), dividing by the number of elapsed
// ticks between the samples, and converting to a percent.
type CPUAverage struct {
UserPct float64
NicePct float64
SystemPct float64
IdlePct float64
IowaitPct float64
IrqPct float64
SoftIrqPct float64
StealPct float64
GuestPct float64
Time time.Time
Seconds float64 // how many seconds between the two samples
}
type MemSample struct {
Buffers uint64
Cached uint64
MemTotal uint64
MemUsed uint64
MemFree uint64
SwapTotal uint64
SwapUsed uint64
SwapFree uint64
Time time.Time
}
type LoadAvgSample struct {
One float64
Five float64
Fifteen float64
Time time.Time
}
type UptimeSample struct {
Uptime float64
Time time.Time
}
// GetCPUAverage returns the average cpu usage between two CPUSamples.
func GetCPUAverage(first CPUSample, second CPUSample) CPUAverage {
return getCPUAverage(first, second)
}
// GetSimpleCPUAverage returns an aggregated average cpu usage between two CPUSamples.
func GetSimpleCPUAverage(first CPUSample, second CPUSample) SimpleCPUAverage {
return getSimpleCPUAverage(first, second)
}
// GetProcCPUAverage returns the average cpu usage of this running process
func GetProcCPUAverage(first ProcCPUSample, second ProcCPUSample, procUptime float64) (avg ProcCPUAverage) {
return getProcCPUAverage(first, second, procUptime)
}
// GetCPUSample takes a snapshot of kernel statistics from the /proc/stat file.
func GetCPUSample() (samp CPUSample) {
return getCPUSample("/proc/stat")
}
// GetProcCPUSample takes a snapshot of kernel statistics from the /proc/stat file.
func GetProcCPUSample() (samp ProcCPUSample) {
return getProcCPUSample()
}
// GetUptime takes a snapshot of load info from the /proc/loadavg file.
func GetUptime() (samp UptimeSample) {
return getUptime("/proc/uptime")
}
// GetLoadAvgSample takes a snapshot of load info from the /proc/loadavg file.
func GetLoadAvgSample() (samp LoadAvgSample) {
return getLoadAvgSample("/proc/loadavg")
}
// GetMemSample takes a snapshot of memory info from the /proc/meminfo file.
func GetMemSample() (samp MemSample) {
return getMemSample("/proc/meminfo")
}

View File

@ -0,0 +1,244 @@
// Copyright (c) 2013 Phillip Bond
// Licensed under the MIT License
// see file LICENSE
// +build linux
package systemstat
import (
"bufio"
"bytes"
"io"
"io/ioutil"
"log"
"runtime"
"strconv"
"strings"
"syscall"
"time"
)
func getUptime(procfile string) (uptime UptimeSample) {
// read in whole uptime file with cpu usage information ;"/proc/uptime"
contents, err := ioutil.ReadFile(procfile)
uptime.Time = time.Now()
if err != nil {
return
}
reader := bufio.NewReader(bytes.NewBuffer(contents))
line, _, err := reader.ReadLine()
fields := strings.Fields(string(line))
val, numerr := strconv.ParseFloat(fields[0], 64)
if numerr != nil {
return
}
uptime.Uptime = val
return
}
func getLoadAvgSample(procfile string) (samp LoadAvgSample) {
// read in whole loadavg file with cpu usage information ;"/proc/loadavg"
contents, err := ioutil.ReadFile(procfile)
samp.Time = time.Now()
if err != nil {
return
}
reader := bufio.NewReader(bytes.NewBuffer(contents))
line, _, err := reader.ReadLine()
fields := strings.Fields(string(line))
for i := 0; i < 3; i++ {
val, numerr := strconv.ParseFloat(fields[i], 64)
if numerr != nil {
return
}
switch i {
case 0:
samp.One = val
case 1:
samp.Five = val
case 2:
samp.Fifteen = val
}
}
return
}
func getMemSample(procfile string) (samp MemSample) {
want := map[string]bool{
"Buffers:": true,
"Cached:": true,
"MemTotal:": true,
"MemFree:": true,
"MemUsed:": true,
"SwapTotal:": true,
"SwapFree:": true,
"SwapUsed:": true}
// read in whole meminfo file with cpu usage information ;"/proc/meminfo"
contents, err := ioutil.ReadFile(procfile)
samp.Time = time.Now()
if err != nil {
return
}
reader := bufio.NewReader(bytes.NewBuffer(contents))
for {
line, _, err := reader.ReadLine()
if err == io.EOF {
break
}
fields := strings.Fields(string(line))
fieldName := fields[0]
_, ok := want[fieldName]
if ok && len(fields) == 3 {
val, numerr := strconv.ParseUint(fields[1], 10, 64)
if numerr != nil {
return
}
switch fieldName {
case "Buffers:":
samp.Buffers = val
case "Cached:":
samp.Cached = val
case "MemTotal:":
samp.MemTotal = val
case "MemFree:":
samp.MemFree = val
case "SwapTotal:":
samp.SwapTotal = val
case "SwapFree:":
samp.SwapFree = val
}
}
}
samp.MemUsed = samp.MemTotal - samp.MemFree
samp.SwapUsed = samp.SwapTotal - samp.SwapFree
return
}
func getProcCPUSample() (s ProcCPUSample) {
var processInfo syscall.Rusage
syscall.Getrusage(syscall.RUSAGE_SELF, &processInfo)
s.Time = time.Now()
s.ProcMemUsedK = int64(processInfo.Maxrss)
s.User = float64(processInfo.Utime.Usec)/1000000 + float64(processInfo.Utime.Sec)
s.System = float64(processInfo.Stime.Usec)/1000000 + float64(processInfo.Stime.Sec)
s.Total = s.User + s.System
return
}
func getCPUSample(procfile string) (samp CPUSample) {
// read in whole proc file with cpu usage information ; "/proc/stat"
contents, err := ioutil.ReadFile(procfile)
samp.Time = time.Now()
if err != nil {
return
}
reader := bufio.NewReader(bytes.NewBuffer(contents))
for {
line, _, err := reader.ReadLine()
if err == io.EOF {
break
}
fields := strings.Fields(string(line))
if len(fields) > 0 {
fieldName := fields[0]
if fieldName == "cpu" {
parseCPUFields(fields, &samp)
}
}
}
return
}
func getSimpleCPUAverage(first CPUSample, second CPUSample) (avg SimpleCPUAverage) {
//walltimediff := second.Time.Sub(first.Time)
//dT := float64(first.Total - second.Total)
dI := float64(second.Idle - first.Idle)
dTot := float64(second.Total - first.Total)
avg.IdlePct = dI / dTot * 100
avg.BusyPct = (dTot - dI) * 100 / dTot
//log.Printf("cpu idle ticks %f, total ticks %f, idle pct %f, busy pct %f\n", dI, dTot, avg.IdlePct, avg.BusyPct)
return
}
func subtractAndConvertTicks(first uint64, second uint64) float64 {
return float64(first - second)
}
func getCPUAverage(first CPUSample, second CPUSample) (avg CPUAverage) {
dTot := float64(second.Total - first.Total)
invQuotient := 100.00 / dTot
avg.UserPct = subtractAndConvertTicks(second.User, first.User) * invQuotient
avg.NicePct = subtractAndConvertTicks(second.Nice, first.Nice) * invQuotient
avg.SystemPct = subtractAndConvertTicks(second.System, first.System) * invQuotient
avg.IdlePct = subtractAndConvertTicks(second.Idle, first.Idle) * invQuotient
avg.IowaitPct = subtractAndConvertTicks(second.Iowait, first.Iowait) * invQuotient
avg.IrqPct = subtractAndConvertTicks(second.Irq, first.Irq) * invQuotient
avg.SoftIrqPct = subtractAndConvertTicks(second.SoftIrq, first.SoftIrq) * invQuotient
avg.StealPct = subtractAndConvertTicks(second.Steal, first.Steal) * invQuotient
avg.GuestPct = subtractAndConvertTicks(second.Guest, first.Guest) * invQuotient
avg.Time = second.Time
avg.Seconds = second.Time.Sub(first.Time).Seconds()
return
}
func getProcCPUAverage(first ProcCPUSample, second ProcCPUSample, procUptime float64) (avg ProcCPUAverage) {
dT := second.Time.Sub(first.Time).Seconds()
avg.UserPct = 100 * (second.User - first.User) / dT
avg.SystemPct = 100 * (second.System - first.System) / dT
avg.TotalPct = 100 * (second.Total - first.Total) / dT
avg.PossiblePct = 100.0 * float64(runtime.NumCPU())
avg.CumulativeTotalPct = 100 * second.Total / procUptime
avg.Time = second.Time
avg.Seconds = dT
return
}
func parseCPUFields(fields []string, stat *CPUSample) {
numFields := len(fields)
stat.Name = fields[0]
for i := 1; i < numFields; i++ {
val, numerr := strconv.ParseUint(fields[i], 10, 64)
if numerr != nil {
log.Println("systemstat.parseCPUFields(): Error parsing (field, value): ", i, fields[i])
}
stat.Total += val
switch i {
case 1:
stat.User = val
case 2:
stat.Nice = val
case 3:
stat.System = val
case 4:
stat.Idle = val
case 5:
stat.Iowait = val
case 6:
stat.Irq = val
case 7:
stat.SoftIrq = val
case 8:
stat.Steal = val
case 9:
stat.Guest = val
}
}
}

View File

@ -0,0 +1,35 @@
// Copyright (c) 2013 Phillip Bond
// Licensed under the MIT License
// see file LICENSE
package systemstat
import (
"fmt"
"testing"
)
var (
msgFail = "%v method fails. Expects %v, returns %v"
)
func TestGetUptime(t *testing.T) {
s := getUptime("testdata/uptime")
if s.Uptime != 18667.53 {
t.Errorf(msgFail, "getUptime", "18667.53", s.Uptime)
}
}
func TestGetLoadAvgSample(t *testing.T) {
s := getLoadAvgSample("testdata/loadavg")
fmt.Printf("%#v\n", s)
if s.One != 0.1 {
t.Errorf(msgFail, "getUptime", "0.1", s.One)
}
if s.Five != 0.15 {
t.Errorf(msgFail, "getUptime", "0.15", s.Five)
}
if s.Fifteen != 0.14 {
t.Errorf(msgFail, "getUptime", "0.14", s.Fifteen)
}
}

View File

@ -0,0 +1 @@
0.10 0.15 0.14 1/538 27757

View File

@ -0,0 +1,42 @@
MemTotal: 3768292 kB
MemFree: 831872 kB
Buffers: 153268 kB
Cached: 1622412 kB
SwapCached: 0 kB
Active: 1287508 kB
Inactive: 1297924 kB
Active(anon): 811384 kB
Inactive(anon): 227652 kB
Active(file): 476124 kB
Inactive(file): 1070272 kB
Unevictable: 196 kB
Mlocked: 196 kB
SwapTotal: 7907324 kB
SwapFree: 7907324 kB
Dirty: 228 kB
Writeback: 0 kB
AnonPages: 809948 kB
Mapped: 226452 kB
Shmem: 229284 kB
Slab: 210268 kB
SReclaimable: 148028 kB
SUnreclaim: 62240 kB
KernelStack: 4344 kB
PageTables: 37932 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 9791468 kB
Committed_AS: 4513904 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 368496 kB
VmallocChunk: 34359365956 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 126592 kB
DirectMap2M: 3786752 kB

View File

@ -0,0 +1 @@
28267 (go-top) S 28256 28256 27864 34816 28256 4202496 736 0 0 0 17470 14 0 0 20 0 7 0 1882735 274173952 571 18446744073709551615 4194368 5592552 140737466979680 139798064197344 4333379 0 0 0 2143420159 18446744073709551615 0 0 17 1 0 0 0 0 0

View File

@ -0,0 +1 @@
28267 (go-top) R 28256 28256 27864 34816 28256 4202496 736 0 0 0 18773 16 0 0 20 0 7 0 1882735 274173952 571 18446744073709551615 4194368 5592552 140737466979680 139798065368712 4457862 0 0 0 2143420159 18446744073709551615 0 0 17 3 0 0 0 0 0

View File

@ -0,0 +1 @@
28267 (go-top) R 28256 28256 27864 34816 28256 4202496 738 0 0 0 20618 18 0 0 20 0 7 0 1882735 274239488 571 18446744073709551615 4194368 5592552 140737466979680 140737466979424 4203351 0 0 0 2143420159 18446744073709551615 0 0 17 0 0 0 0 0 0

View File

@ -0,0 +1 @@
28267 (go-top) R 28256 28256 27864 34816 28256 4202496 738 0 0 0 21641 19 0 0 20 0 7 0 1882735 274239488 571 18446744073709551615 4194368 5592552 140737466979680 139798065356424 4333379 0 0 0 2143420159 18446744073709551615 0 0 17 0 0 0 0 0 0

View File

@ -0,0 +1 @@
28267 (go-top) R 28256 28256 27864 34816 28256 4202496 738 0 0 0 23722 21 0 0 20 0 7 0 1882735 274239488 571 18446744073709551615 4194368 5592552 140737466979680 139798065368712 4203351 0 0 0 2143420159 18446744073709551615 0 0 17 1 0 0 0 0 0

View File

@ -0,0 +1 @@
28267 (go-top) S 28256 28256 27864 34816 28256 4202496 741 0 0 0 25512 22 0 0 20 0 7 0 1882735 274305024 571 18446744073709551615 4194368 5592552 140737466979680 140737466979424 4333379 0 0 0 2143420159 18446744073709551615 0 0 17 2 0 0 0 0 0

View File

@ -0,0 +1,12 @@
cpu 17313 714 8241 717906 1456 0 364 0 0 0
cpu0 6642 289 3526 173411 1162 0 355 0 0 0
cpu1 2193 88 1066 183608 86 0 2 0 0 0
cpu2 6463 217 2578 177186 141 0 4 0 0 0
cpu3 2014 118 1070 183699 65 0 2 0 0 0
intr 2312829 54 5540 0 0 0 0 0 0 1 24723 0 0 262321 0 0 0 733 0 0 34 0 0 0 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124099 1226 121928 26 141511 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 3689186
btime 1374442803
processes 27752
procs_running 1
procs_blocked 0
softirq 923034 6 201522 63 2716 129127 6 168304 89194 629 331467

View File

@ -0,0 +1,12 @@
cpu 17328 714 8254 725156 1457 0 366 0 0 0
cpu0 6648 289 3531 175213 1164 0 356 0 0 0
cpu1 2198 88 1066 185425 86 0 2 0 0 0
cpu2 6466 217 2584 178996 141 0 4 0 0 0
cpu3 2015 118 1071 185521 65 0 2 0 0 0
intr 2316896 54 5562 0 0 0 0 0 0 1 24939 0 0 262321 0 0 0 733 0 0 34 0 0 0 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124124 1226 123058 26 142249 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 3694091
btime 1374442803
processes 27777
procs_running 1
procs_blocked 0
softirq 925673 6 202044 63 2716 129146 6 169061 89550 633 332448

View File

@ -0,0 +1,12 @@
cpu 18661 714 8322 736828 1463 0 367 0 0 0
cpu0 6715 289 3555 178374 1170 0 358 0 0 0
cpu1 3134 88 1080 187754 86 0 2 0 0 0
cpu2 6769 217 2603 181942 141 0 4 0 0 0
cpu3 2042 118 1082 188756 65 0 2 0 0 0
intr 2346985 54 5673 0 0 0 0 0 0 1 25358 0 0 269347 0 0 0 733 0 0 34 0 0 0 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124230 1226 125412 26 143648 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 3722386
btime 1374442803
processes 27939
procs_running 2
procs_blocked 0
softirq 939514 6 208124 63 2720 129245 6 170565 91355 637 336793

View File

@ -0,0 +1,12 @@
cpu 24106 714 8436 758512 1472 0 372 0 0 0
cpu0 7831 289 3602 183989 1177 0 361 0 0 0
cpu1 5075 88 1096 192627 86 0 3 0 0 0
cpu2 7667 217 2640 187814 142 0 5 0 0 0
cpu3 3531 118 1096 194081 66 0 2 0 0 0
intr 2425351 54 5880 0 0 0 0 0 0 1 26243 0 0 282247 0 0 0 733 0 0 34 0 0 0 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124425 1226 130129 26 146647 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 3788723
btime 1374442803
processes 28152
procs_running 1
procs_blocked 0
softirq 975972 6 226788 63 2738 129419 6 173753 98111 659 344429

View File

@ -0,0 +1,12 @@
cpu 25797 714 8461 761860 1472 0 375 0 0 0
cpu0 8406 289 3611 184664 1177 0 364 0 0 0
cpu1 5391 88 1102 193577 86 0 3 0 0 0
cpu2 8115 217 2646 188622 142 0 5 0 0 0
cpu3 3884 118 1100 194996 66 0 2 0 0 0
intr 2446830 54 5896 0 0 0 0 0 0 1 26399 0 0 286933 0 0 0 733 0 0 34 0 0 0 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124455 1226 131103 26 147182 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 3804378
btime 1374442803
processes 28177
procs_running 3
procs_blocked 0
softirq 985047 6 231802 63 2740 129448 6 174303 100182 665 345832

View File

@ -0,0 +1,12 @@
cpu 31643 714 8507 766175 1477 0 377 0 0 0
cpu0 9865 289 3628 185726 1182 0 366 0 0 0
cpu1 6867 88 1110 194656 86 0 3 0 0 0
cpu2 9658 217 2661 189610 142 0 5 0 0 0
cpu3 5252 118 1108 196181 66 0 2 0 0 0
intr 2492898 54 5942 0 0 0 0 0 0 1 26734 0 0 291667 0 0 0 733 0 0 34 0 0 0 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124574 1226 133046 26 148246 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 3836141
btime 1374442803
processes 28244
procs_running 5
procs_blocked 0
softirq 1009821 6 247713 63 2748 129565 6 175417 104452 670 349181

View File

@ -0,0 +1,12 @@
cpu 32813 714 8513 766223 1477 0 377 0 0 0
cpu0 10159 289 3628 185737 1182 0 367 0 0 0
cpu1 7162 88 1110 194668 86 0 3 0 0 0
cpu2 9945 217 2664 189623 142 0 5 0 0 0
cpu3 5546 118 1109 196193 66 0 2 0 0 0
intr 2498999 54 5954 0 0 0 0 0 0 1 26770 0 0 291667 0 0 0 733 0 0 34 0 0 0 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124585 1226 133246 26 148377 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 3839591
btime 1374442803
processes 28269
procs_running 5
procs_blocked 0
softirq 1014220 6 250668 63 2748 129576 6 175558 105038 670 349887

View File

@ -0,0 +1 @@
18667.53 7140.26