Struct tikv::server::load_statistics::ThreadLoadStatistics[][src]

pub struct ThreadLoadStatistics {
    pid: pid_t,
    tids: Vec<pid_t>,
    slots: usize,
    cur_pos: usize,
    cpu_usages: Vec<f64>,
    instants: Vec<Instant>,
    thread_load: Arc<ThreadLoad>,
}

A Linux-specific ThreadLoadStatistics. It collects threads load metrics.

Fields

pid: pid_ttids: Vec<pid_t>slots: usizecur_pos: usizecpu_usages: Vec<f64>instants: Vec<Instant>thread_load: Arc<ThreadLoad>

Implementations

impl ThreadLoadStatistics[src]

pub fn new(slots: usize, prefix: &str, thread_load: Arc<ThreadLoad>) -> Self[src]

Create a thread load statistics for all threads with prefix. ThreadLoad is stored into thread_load. At most slots old records will be kept, to make the curve more smooth.

Note: call this after the target threads are initialized, otherwise it can’t catch them.

pub fn record(&mut self, instant: Instant)[src]

For every threads with the name prefix given in ThreadLoadStatistics::new, gather cpu usage from /proc/<pid>/task/<tid> and store it in thread_load passed in ThreadLoadStatistics::new.

Some old usages and instants (at most slots) will be kept internal to make the usage curve more smooth.

Auto Trait Implementations

impl RefUnwindSafe for ThreadLoadStatistics

impl Send for ThreadLoadStatistics

impl Sync for ThreadLoadStatistics

impl Unpin for ThreadLoadStatistics

impl UnwindSafe for ThreadLoadStatistics

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<V, W> ConvertFrom<W> for V where
    W: ConvertTo<V>, 
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> Sealed<T> for T where
    T: ?Sized
[src]

impl<T> SendSyncUnwindSafe for T where
    T: Send + Sync + UnwindSafe + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]