XrdCmsMeter Class Reference

#include <XrdCmsMeter.hh>

List of all members.

Public Types

enum  vType

Public Member Functions

int calcLoad (int pcpu, int pio, int pload, int pmem, int ppag)
int calcLoad (int xload, int pdsk)
int FreeSpace (int &tutil)
void Init ()
int isOn ()
int Monitor (char *pgm, int itv)
void Record (int pcpu, int pnet, int pxeq, int pmem, int ppag, int pdsk)
int Report (int &pcpu, int &pnet, int &pxeq, int &pmem, int &ppag, int &pdsk)
void * Run ()
void * RunFS ()
int numFS ()
unsigned int TotalSpace (unsigned int &minfree)
void setVirtual (vType vVal)
void setVirtUpdt ()
 XrdCmsMeter ()
 ~XrdCmsMeter ()

Private Member Functions

void calcSpace ()
char Scale (long long inval, long &outval)
void SpaceMsg (int why)
void UpdtSpace ()

Private Attributes

XrdOucStream myMeter
XrdSysMutex cfsMutex
XrdSysMutex repMutex
long long MinFree
long long HWMFree
long long dsk_lpn
long long dsk_tot
long long dsk_free
long long dsk_maxf
int dsk_util
int dsk_calc
int fs_nums
int lastFree
int lastUtil
int noSpace
int Running
long MinShow
long HWMShow
char MinStype
char HWMStype
char Virtual
char VirtUpdt
time_t rep_tod
char * monpgm
int monint
pthread_t montid
unsigned int xeq_load
unsigned int cpu_load
unsigned int mem_load
unsigned int pag_load
unsigned int net_load


Detailed Description

Definition at line 19 of file XrdCmsMeter.hh.


Member Enumeration Documentation

enum XrdCmsMeter::vType

Definition at line 49 of file XrdCmsMeter.hh.


Constructor & Destructor Documentation

XrdCmsMeter::XrdCmsMeter (  ) 

Definition at line 63 of file XrdCmsMeter.cc.

References cpu_load, dsk_calc, dsk_free, dsk_lpn, dsk_maxf, dsk_tot, fs_nums, HWMFree, lastFree, lastUtil, mem_load, MinFree, monint, monpgm, montid, net_load, noSpace, pag_load, rep_tod, Running, Virtual, VirtUpdt, and xeq_load.

XrdCmsMeter::~XrdCmsMeter (  ) 

Definition at line 94 of file XrdCmsMeter.cc.

References free(), XrdSysThread::Kill(), monpgm, and montid.


Member Function Documentation

int XrdCmsMeter::calcLoad ( int  pcpu,
int  pio,
int  pload,
int  pmem,
int  ppag 
)

Definition at line 104 of file XrdCmsMeter.cc.

References XrdFrm::Config().

Referenced by XrdCmsNode::do_Load(), and Run().

int XrdCmsMeter::calcLoad ( int  xload,
int  pdsk 
)

Definition at line 115 of file XrdCmsMeter.cc.

References XrdFrm::Config().

int XrdCmsMeter::FreeSpace ( int &  tutil  ) 

Definition at line 124 of file XrdCmsMeter.cc.

References cfsMutex, dsk_maxf, dsk_util, lastFree, lastUtil, XrdSysMutex::Lock(), peerFS, XrdSysMutex::UnLock(), UpdtSpace(), Virtual, and VirtUpdt.

Referenced by XrdCmsNode::do_Space(), XrdCmsProtocol::Pander(), and Report().

void XrdCmsMeter::Init (  ) 

Definition at line 157 of file XrdCmsMeter.cc.

References calcSpace(), XrdCms::CmsState, XrdFrm::Config(), dsk_calc, dsk_free, dsk_lpn, dsk_maxf, dsk_tot, dsk_util, XrdSysError::Emsg(), XrdOssVSInfo::Extents, fs_nums, HWMFree, HWMShow, HWMStype, XrdOssVSInfo::Large, MinFree, MinShow, MinStype, noSpace, XrdFrmConfig::ossFS, XrdSysThread::Run(), XrdFrm::Say(), Scale(), XrdCmsState::Space, sprintf(), XrdOss::StatVS(), XrdOssVSInfo::Total, XrdCmsState::Update(), and XrdCmsMeterRunFS().

Referenced by XrdCmsConfig::setupServer().

int XrdCmsMeter::isOn (  )  [inline]

Definition at line 31 of file XrdCmsMeter.hh.

References Running.

int XrdCmsMeter::Monitor ( char *  pgm,
int  itv 
)

Definition at line 224 of file XrdCmsMeter.cc.

References access, XrdSysError::Emsg(), monint, monpgm, montid, XrdSysThread::Run(), Running, XrdFrm::Say(), X_OK, and XrdCmsMeterRun().

Referenced by XrdCmsConfig::setupServer().

void XrdCmsMeter::Record ( int  pcpu,
int  pnet,
int  pxeq,
int  pmem,
int  ppag,
int  pdsk 
)

Definition at line 256 of file XrdCmsMeter.cc.

References cpu_load, XrdSysMutex::Lock(), mem_load, net_load, pag_load, repMutex, XrdSysMutex::UnLock(), and xeq_load.

Referenced by XrdCmsNode::do_Load().

int XrdCmsMeter::Report ( int &  pcpu,
int &  pnet,
int &  pxeq,
int &  pmem,
int &  ppag,
int &  pdsk 
)

Definition at line 279 of file XrdCmsMeter.cc.

References cpu_load, XrdOucStream::Drain(), FreeSpace(), XrdSysMutex::Lock(), mem_load, monint, montid, myMeter, net_load, pag_load, rep_tod, repMutex, Running, XrdSysMutex::UnLock(), Virtual, and xeq_load.

Referenced by XrdCmsNode::Report_Usage().

void * XrdCmsMeter::Run (  ) 

Definition at line 307 of file XrdCmsMeter.cc.

References calcLoad(), XrdFrm::Config(), cpu_load, XrdSysError::Emsg(), XrdOucStream::Exec(), XrdOucStream::GetLine(), i, XrdSysMutex::Lock(), mem_load, monpgm, myMeter, net_load, pag_load, rep_tod, repMutex, XrdCmsNode::Report_Usage(), XrdFrm::Say(), XrdSysMutex::UnLock(), and xeq_load.

Referenced by XrdCmsMeterRun().

void * XrdCmsMeter::RunFS (  ) 

Definition at line 344 of file XrdCmsMeter.cc.

References calcSpace(), XrdCms::CmsState, XrdFrm::Config(), dsk_calc, dsk_maxf, HWMFree, MinFree, noSpace, XrdCmsState::Space, SpaceMsg(), and XrdCmsState::Update().

Referenced by XrdCmsMeterRunFS().

int XrdCmsMeter::numFS (  )  [inline]

Definition at line 45 of file XrdCmsMeter.hh.

References fs_nums.

Referenced by XrdCmsProtocol::Pander().

unsigned int XrdCmsMeter::TotalSpace ( unsigned int &  minfree  ) 

Definition at line 369 of file XrdCmsMeter.cc.

References cfsMutex, dsk_tot, XrdSysMutex::Lock(), MinFree, peerFS, XrdSysMutex::UnLock(), UpdtSpace(), Virtual, and VirtUpdt.

Referenced by XrdCmsProtocol::Pander().

void XrdCmsMeter::setVirtual ( vType  vVal  )  [inline]

Definition at line 51 of file XrdCmsMeter.hh.

References Virtual.

Referenced by XrdCmsConfig::Configure2().

void XrdCmsMeter::setVirtUpdt (  )  [inline]

Definition at line 53 of file XrdCmsMeter.hh.

References cfsMutex, XrdSysMutex::Lock(), XrdSysMutex::UnLock(), and VirtUpdt.

Referenced by XrdCmsProtocol::Admit(), and XrdCmsNode::do_Load().

void XrdCmsMeter::calcSpace (  )  [private]

Definition at line 407 of file XrdCmsMeter.cc.

References cfsMutex, XrdFrm::Config(), DEBUG, dsk_free, dsk_maxf, dsk_tot, dsk_util, XrdSysError::Emsg(), EPNAME, XrdOssVSInfo::Free, XrdOssVSInfo::LFree, XrdSysMutex::Lock(), XrdFrmConfig::ossFS, XrdFrm::Say(), XrdOss::StatVS(), and XrdSysMutex::UnLock().

Referenced by Init(), and RunFS().

char XrdCmsMeter::Scale ( long long  inval,
long outval 
) [private]

Definition at line 444 of file XrdCmsMeter.cc.

References i.

Referenced by Init(), and SpaceMsg().

void XrdCmsMeter::SpaceMsg ( int  why  )  [private]

Definition at line 459 of file XrdCmsMeter.cc.

References dsk_maxf, XrdSysError::Emsg(), HWMShow, HWMStype, MinShow, MinStype, noSpace, XrdFrm::Say(), Scale(), sprintf(), and RooFit::What().

Referenced by RunFS().

void XrdCmsMeter::UpdtSpace (  )  [private]

Definition at line 487 of file XrdCmsMeter.cc.

References cfsMutex, XrdCms::Cluster, dsk_tot, lastFree, lastUtil, XrdSysMutex::Lock(), MinFree, XrdCms::SpaceData::sFree, XrdCmsCluster::Space(), XrdCms::SpaceData::sUtil, XrdCms::SpaceData::Total, XrdSysMutex::UnLock(), VirtUpdt, XrdCms::SpaceData::wFree, XrdCms::SpaceData::wMinF, and XrdCms::SpaceData::wUtil.

Referenced by FreeSpace(), and TotalSpace().


Member Data Documentation

XrdOucStream XrdCmsMeter::myMeter [private]

Definition at line 64 of file XrdCmsMeter.hh.

Referenced by Report(), and Run().

XrdSysMutex XrdCmsMeter::cfsMutex [private]

Definition at line 65 of file XrdCmsMeter.hh.

Referenced by calcSpace(), FreeSpace(), setVirtUpdt(), TotalSpace(), and UpdtSpace().

XrdSysMutex XrdCmsMeter::repMutex [private]

Definition at line 66 of file XrdCmsMeter.hh.

Referenced by Record(), Report(), and Run().

long long XrdCmsMeter::MinFree [private]

Definition at line 67 of file XrdCmsMeter.hh.

Referenced by Init(), RunFS(), TotalSpace(), UpdtSpace(), and XrdCmsMeter().

long long XrdCmsMeter::HWMFree [private]

Definition at line 68 of file XrdCmsMeter.hh.

Referenced by Init(), RunFS(), and XrdCmsMeter().

long long XrdCmsMeter::dsk_lpn [private]

Definition at line 69 of file XrdCmsMeter.hh.

Referenced by Init(), and XrdCmsMeter().

long long XrdCmsMeter::dsk_tot [private]

Definition at line 70 of file XrdCmsMeter.hh.

Referenced by calcSpace(), Init(), TotalSpace(), UpdtSpace(), and XrdCmsMeter().

long long XrdCmsMeter::dsk_free [private]

Definition at line 71 of file XrdCmsMeter.hh.

Referenced by calcSpace(), Init(), and XrdCmsMeter().

long long XrdCmsMeter::dsk_maxf [private]

Definition at line 72 of file XrdCmsMeter.hh.

Referenced by calcSpace(), FreeSpace(), Init(), RunFS(), SpaceMsg(), and XrdCmsMeter().

int XrdCmsMeter::dsk_util [private]

Definition at line 73 of file XrdCmsMeter.hh.

Referenced by calcSpace(), FreeSpace(), and Init().

int XrdCmsMeter::dsk_calc [private]

Definition at line 74 of file XrdCmsMeter.hh.

Referenced by Init(), RunFS(), and XrdCmsMeter().

int XrdCmsMeter::fs_nums [private]

Definition at line 75 of file XrdCmsMeter.hh.

Referenced by Init(), numFS(), and XrdCmsMeter().

int XrdCmsMeter::lastFree [private]

Definition at line 76 of file XrdCmsMeter.hh.

Referenced by FreeSpace(), UpdtSpace(), and XrdCmsMeter().

int XrdCmsMeter::lastUtil [private]

Definition at line 77 of file XrdCmsMeter.hh.

Referenced by FreeSpace(), UpdtSpace(), and XrdCmsMeter().

int XrdCmsMeter::noSpace [private]

Definition at line 78 of file XrdCmsMeter.hh.

Referenced by Init(), RunFS(), SpaceMsg(), and XrdCmsMeter().

int XrdCmsMeter::Running [private]

Definition at line 79 of file XrdCmsMeter.hh.

Referenced by isOn(), Monitor(), Report(), and XrdCmsMeter().

long XrdCmsMeter::MinShow [private]

Definition at line 80 of file XrdCmsMeter.hh.

Referenced by Init(), and SpaceMsg().

long XrdCmsMeter::HWMShow [private]

Definition at line 81 of file XrdCmsMeter.hh.

Referenced by Init(), and SpaceMsg().

char XrdCmsMeter::MinStype [private]

Definition at line 82 of file XrdCmsMeter.hh.

Referenced by Init(), and SpaceMsg().

char XrdCmsMeter::HWMStype [private]

Definition at line 83 of file XrdCmsMeter.hh.

Referenced by Init(), and SpaceMsg().

char XrdCmsMeter::Virtual [private]

Definition at line 84 of file XrdCmsMeter.hh.

Referenced by FreeSpace(), Report(), setVirtual(), TotalSpace(), and XrdCmsMeter().

char XrdCmsMeter::VirtUpdt [private]

Definition at line 85 of file XrdCmsMeter.hh.

Referenced by FreeSpace(), setVirtUpdt(), TotalSpace(), UpdtSpace(), and XrdCmsMeter().

time_t XrdCmsMeter::rep_tod [private]

Definition at line 87 of file XrdCmsMeter.hh.

Referenced by Report(), Run(), and XrdCmsMeter().

char* XrdCmsMeter::monpgm [private]

Definition at line 88 of file XrdCmsMeter.hh.

Referenced by Monitor(), Run(), XrdCmsMeter(), and ~XrdCmsMeter().

int XrdCmsMeter::monint [private]

Definition at line 89 of file XrdCmsMeter.hh.

Referenced by Monitor(), Report(), and XrdCmsMeter().

pthread_t XrdCmsMeter::montid [private]

Definition at line 90 of file XrdCmsMeter.hh.

Referenced by Monitor(), Report(), XrdCmsMeter(), and ~XrdCmsMeter().

unsigned int XrdCmsMeter::xeq_load [private]

Definition at line 92 of file XrdCmsMeter.hh.

Referenced by Record(), Report(), Run(), and XrdCmsMeter().

unsigned int XrdCmsMeter::cpu_load [private]

Definition at line 93 of file XrdCmsMeter.hh.

Referenced by Record(), Report(), Run(), and XrdCmsMeter().

unsigned int XrdCmsMeter::mem_load [private]

Definition at line 94 of file XrdCmsMeter.hh.

Referenced by Record(), Report(), Run(), and XrdCmsMeter().

unsigned int XrdCmsMeter::pag_load [private]

Definition at line 95 of file XrdCmsMeter.hh.

Referenced by Record(), Report(), Run(), and XrdCmsMeter().

unsigned int XrdCmsMeter::net_load [private]

Definition at line 96 of file XrdCmsMeter.hh.

Referenced by Record(), Report(), Run(), and XrdCmsMeter().


The documentation for this class was generated from the following files:
Generated on Tue Jul 5 16:50:20 2011 for ROOT_528-00b_version by  doxygen 1.5.1