xrootd
|
#include <XrdCmsMeter.hh>
Public Types | |
enum | vType { manFS = 1, peerFS = 2 } |
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 |
enum XrdCmsMeter::vType |
XrdCmsMeter::XrdCmsMeter | ( | ) |
XrdCmsMeter::~XrdCmsMeter | ( | ) |
References XrdSysThread::Kill(), monpgm, and montid.
int XrdCmsMeter::calcLoad | ( | int | pcpu, |
int | pio, | ||
int | pload, | ||
int | pmem, | ||
int | ppag | ||
) |
References XrdCms::Config, XrdCmsConfig::P_cpu, XrdCmsConfig::P_io, XrdCmsConfig::P_load, XrdCmsConfig::P_mem, and XrdCmsConfig::P_pag.
Referenced by XrdCmsNode::do_Load(), and Run().
int XrdCmsMeter::calcLoad | ( | int | xload, |
int | pdsk | ||
) |
References XrdCms::Config, and XrdCmsConfig::P_dsk.
void XrdCmsMeter::calcSpace | ( | ) | [private] |
int XrdCmsMeter::FreeSpace | ( | int & | tutil | ) |
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 | ( | ) |
References XrdCmsConfig::asSolo(), calcSpace(), XrdCms::CmsState, XrdCms::Config, XrdCmsConfig::DiskAsk, XrdCmsConfig::DiskHWM, XrdCmsConfig::DiskHWMP, XrdCmsConfig::DiskMin, XrdCmsConfig::DiskMinP, dsk_calc, dsk_free, dsk_lpn, dsk_maxf, dsk_tot, dsk_util, XrdOssVSInfo::Extents, fs_nums, HWMFree, HWMShow, HWMStype, XrdOssVSInfo::Large, MinFree, MinShow, MinStype, noSpace, XrdCmsConfig::ossFS, XrdSysThread::Run(), Say, Scale(), XrdCmsState::Space, XrdOss::StatVS(), XrdOssVSInfo::Total, XrdCmsState::Update(), and XrdCmsMeterRunFS().
Referenced by XrdCmsConfig::setupServer().
int XrdCmsMeter::isOn | ( | ) | [inline] |
References Running.
int XrdCmsMeter::Monitor | ( | char * | pgm, |
int | itv | ||
) |
References access(), monint, monpgm, montid, XrdSysThread::Run(), Running, Say, X_OK, and XrdCmsMeterRun().
Referenced by XrdCmsConfig::setupServer().
int XrdCmsMeter::numFS | ( | ) | [inline] |
References fs_nums.
Referenced by XrdCmsProtocol::Pander().
void XrdCmsMeter::Record | ( | int | pcpu, |
int | pnet, | ||
int | pxeq, | ||
int | pmem, | ||
int | ppag, | ||
int | pdsk | ||
) |
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 | ||
) |
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 | ( | ) |
References calcLoad(), XrdCms::Config, cpu_load, XrdOucStream::Exec(), XrdOucStream::GetLine(), XrdSysMutex::Lock(), mem_load, monpgm, myMeter, net_load, XrdCmsConfig::P_fuzz, pag_load, rep_tod, repMutex, XrdCmsNode::Report_Usage(), Say, XrdSysMutex::UnLock(), and xeq_load.
Referenced by XrdCmsMeterRun().
void * XrdCmsMeter::RunFS | ( | ) |
References XrdCmsConfig::asSolo(), calcSpace(), XrdCms::CmsState, XrdCms::Config, dsk_calc, dsk_maxf, HWMFree, MinFree, noSpace, XrdCmsState::Space, SpaceMsg(), and XrdCmsState::Update().
Referenced by XrdCmsMeterRunFS().
char XrdCmsMeter::Scale | ( | long long | inval, |
long & | outval | ||
) | [private] |
Referenced by Init(), and SpaceMsg().
void XrdCmsMeter::setVirtual | ( | vType | vVal | ) | [inline] |
References Virtual.
Referenced by XrdCmsConfig::Configure2().
void XrdCmsMeter::setVirtUpdt | ( | ) | [inline] |
References cfsMutex, XrdSysMutex::Lock(), XrdSysMutex::UnLock(), and VirtUpdt.
Referenced by XrdCmsProtocol::Admit(), and XrdCmsNode::do_Load().
void XrdCmsMeter::SpaceMsg | ( | int | why | ) | [private] |
unsigned int XrdCmsMeter::TotalSpace | ( | unsigned int & | minfree | ) |
References cfsMutex, dsk_tot, XrdSysMutex::Lock(), MinFree, peerFS, XrdSysMutex::UnLock(), UpdtSpace(), Virtual, and VirtUpdt.
Referenced by XrdCmsProtocol::Pander().
void XrdCmsMeter::UpdtSpace | ( | ) | [private] |
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().
XrdSysMutex XrdCmsMeter::cfsMutex [private] |
Referenced by calcSpace(), FreeSpace(), setVirtUpdt(), TotalSpace(), and UpdtSpace().
unsigned int XrdCmsMeter::cpu_load [private] |
Referenced by Record(), Report(), Run(), and XrdCmsMeter().
int XrdCmsMeter::dsk_calc [private] |
Referenced by Init(), RunFS(), and XrdCmsMeter().
long long XrdCmsMeter::dsk_free [private] |
Referenced by calcSpace(), Init(), and XrdCmsMeter().
long long XrdCmsMeter::dsk_lpn [private] |
Referenced by Init(), and XrdCmsMeter().
long long XrdCmsMeter::dsk_maxf [private] |
Referenced by calcSpace(), FreeSpace(), Init(), RunFS(), SpaceMsg(), and XrdCmsMeter().
long long XrdCmsMeter::dsk_tot [private] |
Referenced by calcSpace(), Init(), TotalSpace(), UpdtSpace(), and XrdCmsMeter().
int XrdCmsMeter::dsk_util [private] |
Referenced by calcSpace(), FreeSpace(), and Init().
int XrdCmsMeter::fs_nums [private] |
Referenced by Init(), numFS(), and XrdCmsMeter().
long long XrdCmsMeter::HWMFree [private] |
Referenced by Init(), RunFS(), and XrdCmsMeter().
long XrdCmsMeter::HWMShow [private] |
Referenced by Init(), and SpaceMsg().
char XrdCmsMeter::HWMStype [private] |
Referenced by Init(), and SpaceMsg().
int XrdCmsMeter::lastFree [private] |
Referenced by FreeSpace(), UpdtSpace(), and XrdCmsMeter().
int XrdCmsMeter::lastUtil [private] |
Referenced by FreeSpace(), UpdtSpace(), and XrdCmsMeter().
unsigned int XrdCmsMeter::mem_load [private] |
Referenced by Record(), Report(), Run(), and XrdCmsMeter().
long long XrdCmsMeter::MinFree [private] |
Referenced by Init(), RunFS(), TotalSpace(), UpdtSpace(), and XrdCmsMeter().
long XrdCmsMeter::MinShow [private] |
Referenced by Init(), and SpaceMsg().
char XrdCmsMeter::MinStype [private] |
Referenced by Init(), and SpaceMsg().
int XrdCmsMeter::monint [private] |
Referenced by Monitor(), Report(), and XrdCmsMeter().
char* XrdCmsMeter::monpgm [private] |
Referenced by Monitor(), Run(), XrdCmsMeter(), and ~XrdCmsMeter().
pthread_t XrdCmsMeter::montid [private] |
Referenced by Monitor(), Report(), XrdCmsMeter(), and ~XrdCmsMeter().
XrdOucStream XrdCmsMeter::myMeter [private] |
unsigned int XrdCmsMeter::net_load [private] |
Referenced by Record(), Report(), Run(), and XrdCmsMeter().
int XrdCmsMeter::noSpace [private] |
Referenced by Init(), RunFS(), SpaceMsg(), and XrdCmsMeter().
unsigned int XrdCmsMeter::pag_load [private] |
Referenced by Record(), Report(), Run(), and XrdCmsMeter().
time_t XrdCmsMeter::rep_tod [private] |
Referenced by Report(), Run(), and XrdCmsMeter().
XrdSysMutex XrdCmsMeter::repMutex [private] |
int XrdCmsMeter::Running [private] |
Referenced by isOn(), Monitor(), Report(), and XrdCmsMeter().
char XrdCmsMeter::Virtual [private] |
Referenced by FreeSpace(), Report(), setVirtual(), TotalSpace(), and XrdCmsMeter().
char XrdCmsMeter::VirtUpdt [private] |
Referenced by FreeSpace(), setVirtUpdt(), TotalSpace(), UpdtSpace(), and XrdCmsMeter().
unsigned int XrdCmsMeter::xeq_load [private] |
Referenced by Record(), Report(), Run(), and XrdCmsMeter().