#include <XrdCmsMeter.hh>
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 |
Definition at line 19 of file XrdCmsMeter.hh.
enum XrdCmsMeter::vType |
Definition at line 49 of file XrdCmsMeter.hh.
XrdCmsMeter::XrdCmsMeter | ( | ) |
XrdCmsMeter::~XrdCmsMeter | ( | ) |
Definition at line 94 of file XrdCmsMeter.cc.
References free(), XrdSysThread::Kill(), monpgm, and montid.
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 | |||
) |
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] |
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().
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().
XrdOucStream XrdCmsMeter::myMeter [private] |
XrdSysMutex XrdCmsMeter::cfsMutex [private] |
Definition at line 65 of file XrdCmsMeter.hh.
Referenced by calcSpace(), FreeSpace(), setVirtUpdt(), TotalSpace(), and UpdtSpace().
XrdSysMutex XrdCmsMeter::repMutex [private] |
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] |
long long XrdCmsMeter::dsk_lpn [private] |
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] |
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] |
int XrdCmsMeter::dsk_calc [private] |
int XrdCmsMeter::fs_nums [private] |
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] |
long XrdCmsMeter::HWMShow [private] |
char XrdCmsMeter::MinStype [private] |
char XrdCmsMeter::HWMStype [private] |
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] |
char* XrdCmsMeter::monpgm [private] |
Definition at line 88 of file XrdCmsMeter.hh.
Referenced by Monitor(), Run(), XrdCmsMeter(), and ~XrdCmsMeter().
int XrdCmsMeter::monint [private] |
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().