Exemplo n.º 1
0
 def memory_info(self):
     # on Windows RSS == WorkingSetSize and VSM == PagefileUsage
     # fields of PROCESS_MEMORY_COUNTERS struct:
     # http://msdn.microsoft.com/en-us/library/windows/desktop/
     #     ms684877(v=vs.85).aspx
     t = self._get_raw_meminfo()
     return _common.pmem(t[2], t[7])
Exemplo n.º 2
0
 def memory_info(self):
     # on Windows RSS == WorkingSetSize and VSM == PagefileUsage
     # fields of PROCESS_MEMORY_COUNTERS struct:
     # http://msdn.microsoft.com/en-us/library/windows/desktop/
     #     ms684877(v=vs.85).aspx
     t = self._get_raw_meminfo()
     return _common.pmem(t[2], t[7])
 def memory_info(self):
     f = open("/proc/%s/statm" % self.pid, 'rb')
     try:
         vms, rss = f.readline().split()[:2]
         return _common.pmem(int(rss) * PAGESIZE, int(vms) * PAGESIZE)
     finally:
         f.close()
Exemplo n.º 4
0
 def memory_info(self):
     f = open("/proc/%s/statm" % self.pid, 'rb')
     try:
         vms, rss = f.readline().split()[:2]
         return _common.pmem(int(rss) * PAGESIZE,
                             int(vms) * PAGESIZE)
     finally:
         f.close()
    def test_memory_usage_is_available(self):
        # given
        port = 1234
        pid = 42
        process = MagicMock()
        p = ForkedProcess(process, port)
        process.pid = pid

        with patch('pixelated.provider.fork.adapter.Process') as psutil_process_mock:
            psutil_mock = psutil_process_mock.return_value
            psutil_mock.memory_info.return_value = pmem(1024, 2048)

            # when
            usage = p.memory_usage()

            # then
            psutil_process_mock.assert_called_once_with(pid)
            psutil_mock.memory_info.assert_called_once_with()

            self.assertEqual(1024, usage)
Exemplo n.º 6
0
    def test_memory_usage_is_available(self):
        # given
        port = 1234
        pid = 42
        process = MagicMock()
        p = ForkedProcess(process, port)
        process.pid = pid

        with patch('pixelated.provider.fork.adapter.Process'
                   ) as psutil_process_mock:
            psutil_mock = psutil_process_mock.return_value
            psutil_mock.memory_info.return_value = pmem(1024, 2048)

            # when
            usage = p.memory_usage()

            # then
            psutil_process_mock.assert_called_once_with(pid)
            psutil_mock.memory_info.assert_called_once_with()

            self.assertEqual(1024, usage)
    def test_memory_usage(self, docker_mock, process_mock):
        # given
        container = {u'Status': u'Up 20 seconds', u'Created': 1404904929, u'Image': u'pixelated:latest', u'Ports': [{u'IP': u'0.0.0.0', u'Type': u'tcp', u'PublicPort': 5000, u'PrivatePort': 33144}], u'Command': u'sleep 100', u'Names': [u'/test'], u'Id': u'f59ee32d2022b1ab17eef608d2cd617b7c086492164b8c411f1cbcf9bfef0d87'}
        info = {u'HostsPath': u'/var/lib/docker/containers/f2cdb04277e9e056c610240edffe8ff94ae272e462312c270e5300975d60af89/hosts', u'Created': u'2014-07-14T13:17:46.17558664Z', u'Image': u'f63df19194389be6481a174b36d291c483c8982d5c07485baa71a46b7f6582c8', u'Args': [], u'Driver': u'aufs', u'HostConfig': {u'PortBindings': {u'4567/tcp': [{u'HostPort': u'5000', u'HostIp': u'0.0.0.0'}]}, u'NetworkMode': u'', u'Links': None, u'LxcConf': None, u'ContainerIDFile': u'', u'Binds': [u'/tmp/multipile/folker:/mnt/user:rw'], u'PublishAllPorts': False, u'Dns': None, u'DnsSearch': None, u'Privileged': False, u'VolumesFrom': None}, u'MountLabel': u'', u'VolumesRW': {u'/mnt/user': True}, u'State': {u'Pid': 3250, u'Paused': False, u'Running': True, u'FinishedAt': u'0001-01-01T00:00:00Z', u'StartedAt': u'2014-07-14T13:17:46.601922899Z', u'ExitCode': 0}, u'ExecDriver': u'native-0.2', u'ResolvConfPath': u'/etc/resolv.conf', u'Volumes': {u'/mnt/user': u'/tmp/multipile/folker'}, u'Path': u'/bin/bash -l -c "/usr/bin/pixelated-user-agent --dispatcher"', u'HostnamePath': u'/var/lib/docker/containers/f2cdb04277e9e056c610240edffe8ff94ae272e462312c270e5300975d60af89/hostname', u'ProcessLabel': u'', u'Config': {u'MemorySwap': 0, u'Hostname': u'f2cdb04277e9', u'Entrypoint': None, u'PortSpecs': None, u'Memory': 0, u'OnBuild': None, u'OpenStdin': False, u'Cpuset': u'', u'Env': [u'HOME=/', u'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'], u'User': u'', u'CpuShares': 0, u'AttachStdout': True, u'NetworkDisabled': False, u'WorkingDir': u'', u'Cmd': [u'/bin/bash -l -c "/usr/bin/pixelated-user-agent --dispatcher"'], u'StdinOnce': False, u'AttachStdin': False, u'Volumes': {u'/mnt/user': {}}, u'Tty': False, u'AttachStderr': True, u'Domainname': u'', u'Image': u'pixelated', u'ExposedPorts': {u'4567/tcp': {}}}, u'Id': u'f2cdb04277e9e056c610240edffe8ff94ae272e462312c270e5300975d60af89', u'NetworkSettings': {u'Bridge': u'docker0', u'PortMapping': None, u'Gateway': u'172.17.42.1', u'IPPrefixLen': 16, u'IPAddress': u'172.17.0.14', u'Ports': {u'4567/tcp': [{u'HostPort': u'5000', u'HostIp': u'0.0.0.0'}]}}, u'Name': u'/folker'}
        client = docker_mock.return_value
        client.containers.return_value = [container]
        client.inspect_container.return_value = info

        psutil_mock = process_mock.return_value
        psutil_mock.memory_info.return_value = pmem(1024, 2048)

        provider = self._create_initialized_provider(self._adapter, 'some docker url')

        # when
        usage = provider.memory_usage()

        # then
        self.assertEqual({'total_usage': 1024,
                          'average_usage': 1024,
                          'agents': [
                              {'name': 'test', 'memory_usage': 1024}
                          ]}, usage)
Exemplo n.º 8
0
 def memory_info(self):
     with open("/proc/%s/statm" % self.pid, 'rb') as f:
         vms, rss = f.readline().split()[:2]
         return _common.pmem(int(rss) * PAGESIZE, int(vms) * PAGESIZE)
Exemplo n.º 9
0
 def memory_info(self):
     ret = cext.proc_basic_info(self.pid)
     rss, vms = ret[1] * 1024, ret[2] * 1024
     return _common.pmem(rss, vms)
Exemplo n.º 10
0
 def memory_info(self):
     ret = cext.proc_basic_info(self.pid)
     rss, vms = ret[1] * 1024, ret[2] * 1024
     return _common.pmem(rss, vms)
Exemplo n.º 11
0
 def memory_info(self):
     rss, vms = cext.proc_memory_info(self.pid)[:2]
     return _common.pmem(rss, vms)
    def test_memory_usage(self, docker_mock, process_mock):
        # given
        container = {
            u'Status':
            u'Up 20 seconds',
            u'Created':
            1404904929,
            u'Image':
            u'pixelated:latest',
            u'Ports': [{
                u'IP': u'0.0.0.0',
                u'Type': u'tcp',
                u'PublicPort': 5000,
                u'PrivatePort': 33144
            }],
            u'Command':
            u'sleep 100',
            u'Names': [u'/test'],
            u'Id':
            u'f59ee32d2022b1ab17eef608d2cd617b7c086492164b8c411f1cbcf9bfef0d87'
        }
        info = {
            u'HostsPath':
            u'/var/lib/docker/containers/f2cdb04277e9e056c610240edffe8ff94ae272e462312c270e5300975d60af89/hosts',
            u'Created': u'2014-07-14T13:17:46.17558664Z',
            u'Image':
            u'f63df19194389be6481a174b36d291c483c8982d5c07485baa71a46b7f6582c8',
            u'Args': [],
            u'Driver': u'aufs',
            u'HostConfig': {
                u'PortBindings': {
                    u'4567/tcp': [{
                        u'HostPort': u'5000',
                        u'HostIp': u'0.0.0.0'
                    }]
                },
                u'NetworkMode': u'',
                u'Links': None,
                u'LxcConf': None,
                u'ContainerIDFile': u'',
                u'Binds': [u'/tmp/multipile/folker:/mnt/user:rw'],
                u'PublishAllPorts': False,
                u'Dns': None,
                u'DnsSearch': None,
                u'Privileged': False,
                u'VolumesFrom': None
            },
            u'MountLabel': u'',
            u'VolumesRW': {
                u'/mnt/user': True
            },
            u'State': {
                u'Pid': 3250,
                u'Paused': False,
                u'Running': True,
                u'FinishedAt': u'0001-01-01T00:00:00Z',
                u'StartedAt': u'2014-07-14T13:17:46.601922899Z',
                u'ExitCode': 0
            },
            u'ExecDriver': u'native-0.2',
            u'ResolvConfPath': u'/etc/resolv.conf',
            u'Volumes': {
                u'/mnt/user': u'/tmp/multipile/folker'
            },
            u'Path':
            u'/bin/bash -l -c "/usr/bin/pixelated-user-agent --dispatcher"',
            u'HostnamePath':
            u'/var/lib/docker/containers/f2cdb04277e9e056c610240edffe8ff94ae272e462312c270e5300975d60af89/hostname',
            u'ProcessLabel': u'',
            u'Config': {
                u'MemorySwap':
                0,
                u'Hostname':
                u'f2cdb04277e9',
                u'Entrypoint':
                None,
                u'PortSpecs':
                None,
                u'Memory':
                0,
                u'OnBuild':
                None,
                u'OpenStdin':
                False,
                u'Cpuset':
                u'',
                u'Env': [
                    u'HOME=/',
                    u'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
                ],
                u'User':
                u'',
                u'CpuShares':
                0,
                u'AttachStdout':
                True,
                u'NetworkDisabled':
                False,
                u'WorkingDir':
                u'',
                u'Cmd': [
                    u'/bin/bash -l -c "/usr/bin/pixelated-user-agent --dispatcher"'
                ],
                u'StdinOnce':
                False,
                u'AttachStdin':
                False,
                u'Volumes': {
                    u'/mnt/user': {}
                },
                u'Tty':
                False,
                u'AttachStderr':
                True,
                u'Domainname':
                u'',
                u'Image':
                u'pixelated',
                u'ExposedPorts': {
                    u'4567/tcp': {}
                }
            },
            u'Id':
            u'f2cdb04277e9e056c610240edffe8ff94ae272e462312c270e5300975d60af89',
            u'NetworkSettings': {
                u'Bridge': u'docker0',
                u'PortMapping': None,
                u'Gateway': u'172.17.42.1',
                u'IPPrefixLen': 16,
                u'IPAddress': u'172.17.0.14',
                u'Ports': {
                    u'4567/tcp': [{
                        u'HostPort': u'5000',
                        u'HostIp': u'0.0.0.0'
                    }]
                }
            },
            u'Name': u'/folker'
        }
        client = docker_mock.return_value
        client.containers.return_value = [container]
        client.inspect_container.return_value = info

        psutil_mock = process_mock.return_value
        psutil_mock.memory_info.return_value = pmem(1024, 2048)

        provider = self._create_initialized_provider(self._adapter,
                                                     'some docker url')

        # when
        usage = provider.memory_usage()

        # then
        self.assertEqual(
            {
                'total_usage': 1024,
                'average_usage': 1024,
                'agents': [{
                    'name': 'test',
                    'memory_usage': 1024
                }]
            }, usage)
Exemplo n.º 13
0
 def memory_info(self):
     with open("/proc/%s/statm" % self.pid, 'rb') as f:
         vms, rss = f.readline().split()[:2]
         return _common.pmem(int(rss) * PAGESIZE,
                             int(vms) * PAGESIZE)
Exemplo n.º 14
0
 def memory_info(self):
     rss, vms = cext.proc_memory_info(self.pid)[:2]
     return _common.pmem(rss, vms)
Exemplo n.º 15
0
 def memory_info(self):
     """Return a tuple with the process' RSS and VMS size."""
     rss, vms = cext.proc_memory_info(self.pid)[:2]
     return _common.pmem(rss, vms)