Software /
code /
prosody
Comparison
plugins/mod_admin_telnet.lua @ 5579:e449e6342e36
mod_admin_telnet: Add server:memory() command to view details of Prosody's memory usage
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 16 May 2013 10:47:22 +0100 |
parent | 5567:c4ab25b35a55 |
child | 5586:7e1264bf7af8 |
comparison
equal
deleted
inserted
replaced
5578:b8101bc0630f | 5579:e449e6342e36 |
---|---|
234 print [[user:delete(jid) - Permanently remove the specified user account]] | 234 print [[user:delete(jid) - Permanently remove the specified user account]] |
235 print [[user:list(hostname, pattern) - List users on the specified host, optionally filtering with a pattern]] | 235 print [[user:list(hostname, pattern) - List users on the specified host, optionally filtering with a pattern]] |
236 elseif section == "server" then | 236 elseif section == "server" then |
237 print [[server:version() - Show the server's version number]] | 237 print [[server:version() - Show the server's version number]] |
238 print [[server:uptime() - Show how long the server has been running]] | 238 print [[server:uptime() - Show how long the server has been running]] |
239 print [[server:memory() - Show details about the server's memory usage]] | |
239 print [[server:shutdown(reason) - Shut down the server, with an optional reason to be broadcast to all connections]] | 240 print [[server:shutdown(reason) - Shut down the server, with an optional reason to be broadcast to all connections]] |
240 elseif section == "port" then | 241 elseif section == "port" then |
241 print [[port:list() - Lists all network ports prosody currently listens on]] | 242 print [[port:list() - Lists all network ports prosody currently listens on]] |
242 print [[port:close(port, interface) - Close a port]] | 243 print [[port:close(port, interface) - Close a port]] |
243 elseif section == "dns" then | 244 elseif section == "dns" then |
296 end | 297 end |
297 | 298 |
298 function def_env.server:shutdown(reason) | 299 function def_env.server:shutdown(reason) |
299 prosody.shutdown(reason); | 300 prosody.shutdown(reason); |
300 return true, "Shutdown initiated"; | 301 return true, "Shutdown initiated"; |
302 end | |
303 | |
304 local function human(kb) | |
305 local unit = "K"; | |
306 if kb > 1024 then | |
307 kb, unit = kb/1024, "M"; | |
308 end | |
309 return ("%0.2f%sB"):format(kb, unit); | |
310 end | |
311 | |
312 function def_env.server:memory() | |
313 if not pposix.meminfo then | |
314 return true, "Lua is using "..collectgarbage("count"); | |
315 end | |
316 local mem, lua_mem = pposix.meminfo(), collectgarbage("count"); | |
317 local print = self.session.print; | |
318 print("Process: "..human((mem.allocated+mem.allocated_mmap)/1024)); | |
319 print(" Used: "..human(mem.used/1024).." ("..human(lua_mem).." by Lua)"); | |
320 print(" Free: "..human(mem.unused/1024).." ("..human(mem.returnable/1024).." returnable)"); | |
321 return true, "OK"; | |
301 end | 322 end |
302 | 323 |
303 def_env.module = {}; | 324 def_env.module = {}; |
304 | 325 |
305 local function get_hosts_set(hosts, module) | 326 local function get_hosts_set(hosts, module) |