summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
c57eddb)
Updated to use new vserver.py.
print "Slice %s is being killed." % self.name
vserver = VServer(self.name)
vserver.stop()
print "Slice %s is being killed." % self.name
vserver = VServer(self.name)
vserver.stop()
+ # ignore initscripts. Don't run anything at start.
+ vserver.INITSCRIPTS = []
+ vserver.start()
os._exit(0)
else:
os.waitpid(pid,0)
os._exit(0)
else:
os.waitpid(pid,0)
print "Resetting slice " + self.name
vserver = VServer(self.name)
vserver.stop()
print "Resetting slice " + self.name
vserver = VServer(self.name)
vserver.stop()
- vserver.start(wait = False)
os._exit(0)
else:
os.waitpid(pid,0)
os._exit(0)
else:
os.waitpid(pid,0)
"""
Get status of specified slices (if names is None or empty, all
slices). vsize, sz, and rss are in KiB. Returns
"""
Get status of specified slices (if names is None or empty, all
slices). vsize, sz, and rss are in KiB. Returns
+ PID CONTEXT VSZ SZ RSS %MEM CMD
{xid: {'xid': slice_id,
'name': slice_name,
{xid: {'xid': slice_id,
'name': slice_name,
- 'procs': [{'pid': pid, 'xid': slice_id, 'user', username, 'cmd': command,
+ 'procs': [{'pid': pid, 'xid': slice_id, 'cmd': command,
'vsize': virtual_kib, 'sz': potential_kib, 'rss': physical_kib,
'pcpu': cpu_percent, 'pmem': mem_percent}]
'vsize': total_virtual_kib,
'vsize': virtual_kib, 'sz': potential_kib, 'rss': physical_kib,
'pcpu': cpu_percent, 'pmem': mem_percent}]
'vsize': total_virtual_kib,
# Mandatory fields. xid is a virtual field inserted by vps. Make
# sure cmd is last so that it does not get truncated
# automatically.
# Mandatory fields. xid is a virtual field inserted by vps. Make
# sure cmd is last so that it does not get truncated
# automatically.
- fields = ['pid', 'xid', 'user', 'vsize', 'sz', 'rss', 'pcpu', 'pmem', 'cmd']
+ fields = ['pid', 'xid', 'vsize', 'sz', 'rss', 'pmem', 'cmd']
# vps inserts xid after pid in the output, but ps doesn't know
# what the field means.
# vps inserts xid after pid in the output, but ps doesn't know
# what the field means.
- # vps sometimes prints ERR instead of a context ID if it
+ # vps sometimes prints ERR or the name of the slice
+ # instead of a context ID if it
# cannot identify the context of an orphaned (usually dying)
# process. Skip these processes.
# cannot identify the context of an orphaned (usually dying)
# process. Skip these processes.
- if type(proc['xid']) != int:
+ if (type(proc['xid']) != int) or (type(proc['vsize']) !=int):
continue
# Assign (pl_)sshd processes to slice instead of root
m = re.search(r"sshd: ([a-zA-Z_]+)", proc['cmd'])
continue
# Assign (pl_)sshd processes to slice instead of root
m = re.search(r"sshd: ([a-zA-Z_]+)", proc['cmd'])
if m is not None:
xid = bwlimit.get_xid(m.group(1))
if xid is not None:
if m is not None:
xid = bwlimit.get_xid(m.group(1))
if xid is not None:
slice['rss'] += proc['rss']
slices[proc['xid']] = slice
slice['rss'] += proc['rss']
slices[proc['xid']] = slice
return slices
def memtotal():
return slices
def memtotal():
table = "%5s %10s %10s %10s %4s %4s %s\n\n" % \
("PID", "VIRT", "SZ", "RES", '%CPU', '%MEM', 'COMMAND')
for proc in slice['procs']:
table = "%5s %10s %10s %10s %4s %4s %s\n\n" % \
("PID", "VIRT", "SZ", "RES", '%CPU', '%MEM', 'COMMAND')
for proc in slice['procs']:
- table += "%5s %10s %10s %10s %4.1f %4.1f %s\n" % \
+ table += "%5s %10s %10s %10s %4.1f %s\n" % \
(proc['pid'],
format_bytes(proc['vsize'] * 1024, si = False),
format_bytes(proc['sz'] * 1024, si = False),
format_bytes(proc['rss'] * 1024, si = False),
(proc['pid'],
format_bytes(proc['vsize'] * 1024, si = False),
format_bytes(proc['sz'] * 1024, si = False),
format_bytes(proc['rss'] * 1024, si = False),
proc['pmem'],
proc['cmd'])
proc['pmem'],
proc['cmd'])
if resetlist[resetslice].killtimeleft == 0 and \
resetlist[resetslice].resettimeleft == 0:
del resetlist[resetslice]
if resetlist[resetslice].killtimeleft == 0 and \
resetlist[resetslice].resettimeleft == 0:
del resetlist[resetslice]
-
- if verbose: print "%d%% swap consumed" % used
if used >= reboot_thresh:
# Dump slice state before rebooting
if used >= reboot_thresh:
# Dump slice state before rebooting