![]() |
XRootD
|
#include <XrdCmsMeter.hh>
Public Types | |
enum | vType { manFS = 1 , peerFS = 2 } |
Public Member Functions | |
XrdCmsMeter () | |
~XrdCmsMeter () | |
int | calcLoad (int xload, uint32_t pdsk) |
int | calcLoad (uint32_t pcpu, uint32_t pio, uint32_t pload, uint32_t pmem, uint32_t ppag) |
int | FreeSpace (int &tutil) |
void | Init () |
int | isOn () |
int | Monitor (char *pgm, int itv) |
int | Monitor (int itv) |
int | numFS () |
void | PutInfo (XrdCmsPerfMon::PerfInfo &perfInfo, bool alert=false) |
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 () |
void * | RunPM () |
void | setVirtual (vType vVal) |
void | setVirtUpdt () |
unsigned int | TotalSpace (unsigned int &minfree) |
bool | Update (char *line, bool alert=false) |
![]() | |
XrdCmsPerfMon () | |
Constructor & Destructor. More... | |
virtual | ~XrdCmsPerfMon () |
virtual bool | Configure (const char *cfn, char *Parms, XrdSysLogger &Logger, XrdCmsPerfMon &cmsMon, XrdOucEnv *EnvInfo, bool isCMS) |
virtual void | GetInfo (PerfInfo &info) |
Definition at line 38 of file XrdCmsMeter.hh.
enum XrdCmsMeter::vType |
XrdCmsMeter::XrdCmsMeter | ( | ) |
Definition at line 86 of file XrdCmsMeter.cc.
XrdCmsMeter::~XrdCmsMeter | ( | ) |
Definition at line 120 of file XrdCmsMeter.cc.
References XrdSysThread::Kill().
int XrdCmsMeter::calcLoad | ( | int | xload, |
uint32_t | pdsk | ||
) |
int XrdCmsMeter::calcLoad | ( | uint32_t | pcpu, |
uint32_t | pio, | ||
uint32_t | pload, | ||
uint32_t | pmem, | ||
uint32_t | ppag | ||
) |
Definition at line 130 of file XrdCmsMeter.cc.
References XrdCms::Config, XrdCmsConfig::P_cpu, XrdCmsConfig::P_io, XrdCmsConfig::P_load, XrdCmsConfig::P_mem, and XrdCmsConfig::P_pag.
Referenced by XrdCmsNode::do_Load(), PutInfo(), and Update().
int XrdCmsMeter::FreeSpace | ( | int & | tutil | ) |
Definition at line 158 of file XrdCmsMeter.cc.
References XrdSysMutex::Lock(), peerFS, and XrdSysMutex::UnLock().
Referenced by XrdCmsNode::do_Space(), and Report().
void XrdCmsMeter::Init | ( | ) |
Definition at line 191 of file XrdCmsMeter.cc.
References XrdCmsConfig::asSolo(), XrdCms::CmsState, XrdCms::Config, XrdCmsConfig::DiskAsk, XrdCmsConfig::DiskHWM, XrdCmsConfig::DiskHWMP, XrdCmsConfig::DiskMin, XrdCmsConfig::DiskMinP, XrdSysError::Emsg(), XrdOssVSInfo::Extents, XrdOssVSInfo::Large, XrdCmsConfig::ossFS, XrdSysThread::Run(), XrdCms::Say, XrdCmsState::Space, XrdOss::StatVS(), XrdOssVSInfo::Total, and XrdCmsState::Update().
|
inline |
Definition at line 51 of file XrdCmsMeter.hh.
int XrdCmsMeter::Monitor | ( | char * | pgm, |
int | itv | ||
) |
Definition at line 258 of file XrdCmsMeter.cc.
References access(), XrdSysError::Emsg(), XrdSysThread::Run(), and XrdCms::Say.
int XrdCmsMeter::Monitor | ( | int | itv | ) |
Definition at line 288 of file XrdCmsMeter.cc.
References XrdCms::Config, XrdCmsConfig::ConfigFN, XrdCmsPerfMon::Configure(), XrdSysError::Emsg(), XrdCmsUtils::loadPerfMon(), XrdSysError::logger(), XrdCmsConfig::myVInfo, XrdCmsConfig::prfLib, XrdCmsConfig::prfParms, XrdSysThread::Run(), and XrdCms::Say.
|
inline |
Definition at line 70 of file XrdCmsMeter.hh.
|
virtual |
Report performance statistics as load values from 0 to 100. The performance monitor plugin may call this method to asynchronously report performance via the passed XrdCmsPerfMon object during configuration.
info | Reference to the structure that should be filled out with load values. See the PerfInfo structure. |
alert | When true, load information is forcibly sent to the cluster's manager. Otherwise, it is only sent if it significantly changes. See the cms.sched directive fuzz parameter. |
Reimplemented from XrdCmsPerfMon.
Definition at line 324 of file XrdCmsMeter.cc.
References calcLoad(), XrdCms::Config, XrdCmsPerfMon::PerfInfo::cpu_load, XrdSysMutex::Lock(), XrdCmsPerfMon::PerfInfo::mem_load, XrdCmsPerfMon::PerfInfo::net_load, XrdCmsConfig::P_fuzz, XrdCmsPerfMon::PerfInfo::pag_load, XrdCmsNode::Report_Usage(), XrdSysMutex::UnLock(), and XrdCmsPerfMon::PerfInfo::xeq_load.
Referenced by RunPM().
void XrdCmsMeter::Record | ( | int | pcpu, |
int | pnet, | ||
int | pxeq, | ||
int | pmem, | ||
int | ppag, | ||
int | pdsk | ||
) |
Definition at line 351 of file XrdCmsMeter.cc.
References XrdSysMutex::Lock(), and XrdSysMutex::UnLock().
Referenced by XrdCmsNode::do_Load().
int XrdCmsMeter::Report | ( | int & | pcpu, |
int & | pnet, | ||
int & | pxeq, | ||
int & | pmem, | ||
int & | ppag, | ||
int & | pdsk | ||
) |
Definition at line 374 of file XrdCmsMeter.cc.
References XrdOucStream::Drain(), FreeSpace(), XrdSysMutex::Lock(), and XrdSysMutex::UnLock().
Referenced by XrdCmsNode::Report_Usage().
void * XrdCmsMeter::Run | ( | ) |
Definition at line 402 of file XrdCmsMeter.cc.
References XrdSysError::Emsg(), XrdOucStream::Exec(), XrdOucStream::GetLine(), XrdCms::Say, XrdSysTimer::Snooze(), and Update().
void * XrdCmsMeter::RunFS | ( | ) |
Definition at line 424 of file XrdCmsMeter.cc.
References XrdCmsConfig::asSolo(), XrdCms::CmsState, XrdCms::Config, XrdCmsState::Space, and XrdCmsState::Update().
void * XrdCmsMeter::RunPM | ( | ) |
Definition at line 449 of file XrdCmsMeter.cc.
References XrdCmsPerfMon::PerfInfo::Clear(), XrdCmsPerfMon::GetInfo(), PutInfo(), and XrdSysTimer::Snooze().
|
inline |
Definition at line 76 of file XrdCmsMeter.hh.
Referenced by XrdCmsConfig::Configure2().
|
inline |
Definition at line 78 of file XrdCmsMeter.hh.
References XrdSysMutex::Lock(), and XrdSysMutex::UnLock().
Referenced by XrdCmsNode::do_Load().
unsigned int XrdCmsMeter::TotalSpace | ( | unsigned int & | minfree | ) |
Definition at line 468 of file XrdCmsMeter.cc.
References XrdSysMutex::Lock(), peerFS, and XrdSysMutex::UnLock().
bool XrdCmsMeter::Update | ( | char * | line, |
bool | alert = false |
||
) |
Definition at line 502 of file XrdCmsMeter.cc.
References calcLoad(), XrdCms::Config, XrdSysMutex::Lock(), XrdCmsConfig::P_fuzz, XrdCmsNode::Report_Usage(), and XrdSysMutex::UnLock().
Referenced by Run().