Python如何改变角色大小?

这是Windows DHCP最佳实践和技巧的最终指南。

如果您有任何最佳做法或技巧,请在下面的评论中发布它们。

在本指南(二)中,我将分享以下DHCP最佳实践和技巧。

  1. 从DHCP作用域中排除IP
  2. 子网划分和网络分段的好处

从DHCP作用域中排除IP

创建DHCP作用域时,建议不要为静态IP分配排除一小部分范围。是的,我在上一个技巧中知道我说过不使用静态分配,但是基础设施设备将需要它。

您的网络将具有一个默认路由,该默认路由将是路由器,因此您绝对希望将其排除在DHCP池之外。您可能还会遇到其他需要静态IP的设备,因此最好将这些设备的排除的IP在DHCP池中设置一个较小范围较。例如,我看到了各种需要静态IP的警报和安全设备,因此我只提供排除范围内的IP。

子网划分和网络分段的好处

我不会深入探讨子网划分,因为有很多服务可以做到这一点。

但是,在配置DHCP作用域时,它有助于对网络有一些基本的了解。

您不想为所有设备只有一个大的DHCP池,而是应将设备分段到单独的网络中。这也取决于网络的大小,如果网络较小,则网络分段不是那么重要。

通过将设备保持在单独的网络上,您可以更好地控制网络。您的打印机需要访问互联网吗?可能不会。财务部门的计算机是否需要直接与HR中的计算机对话,绝对不是。通过将设备分成自己的网络,您可以更好地控制它们的访问。

限制网络中的横向移动确实可以减慢攻击者和病毒的速度。在网络级别启用防火墙或访问控制列表以限制网络中的横向移动非常重要。

将所有内容都放在一个大型网络上将创建一个巨大的广播域。这可能会导致各种问题,例如生成树循环,广播和多播风暴。对网络进行分段将分隔广播域并减少可能的性能问题。

您不希望您的访客网络访问您的安全网络。将此流量分离到其自己的网络,可以过滤流量并阻止对内部网络的访问。我还将访客网络用于仅需要Internet连接的IOT类型的设备。

以下是如何细分网络流量的示例。

除了进行网络分段之外,请尝试使IP方案保持简单,这确实简化了DHCP作用域的管理。

DHCP租约是DHCP服务器为客户端分配IP地址的时间段。DHCP作用域的默认DHCP租用时间为8天。

提示#1增加固定设备的租赁时间

对于小型网络,您可以将租约时间保留为默认设置8小时。

对于大型网络,请考虑将固定设备(工作站)的DHCP作用域更改为16天。这样可以减少与DHCP相关的网络流量。工作站不经常移动,因此无需为了获得IP地址而经常跟DHCP进行交互。

提示#2减少访客/移动设备的租赁时间

如果提供来宾wifi,则这些DHCP作用域会很快耗尽可用IP。这些设备很可能只需要临时访问(例如几个小时)。对于这些范围,请考虑将DHCP租用时间调整为1小时。如果设备仍然处于活动状态,它将续订,但是如果设备断开连接,它将释放IP地址,这将有助于您的来宾有足够的可用IP。

移动设备也可能是这种情况,尽管越来越多的用户使用笔记本电脑,但这种设备可能会很棘手。默认的8天可能就足够了,但是如果您知道移动设备经常到处移动,则可以考虑减少租赁时间。

DHCP最佳实践(一)
DHCP最佳实践(二)
DHCP最佳实践(三)
DHCP最佳实践(四)

以上是 的全部内容, 来源链接:

答案是,“只使用sys.getsize of”不是一个完整的答案。

这个答案是吗?直接为内置对象工作,但它不考虑这些对象可能包含哪些类型,特别是自定义对象、元组、列表、数据集和集合包含的类型。它们可以包含彼此的实例,以及数字、字符串和其他对象。

使用Anaconda发行版中的64位Pythonda版本中的64位Python 3.6和sys.getsize of,我确定了以下对象的最小大小,并注意到SET和DECT预先分配了空间,这样空间才会在设置数量之后才会再次增长(这可能随着语言的实现而不同):

你怎么解释这个?好吧,假设你有一套,里面有10件物品。如果每个项目都是100个字节,那么整个数据结构有多大?集合本身是736个,因为它将大小调整到736字节。然后,将项目的大小相加,总共为1736字节。

函数和类定义的一些注意事项:

注每个类定义都有一个代理。__dict__(48字节)类的结构。每个插槽都有一个描述符(类似于property)在类定义中。

时隙实例从其第一个元素上的48个字节开始,每增加8个字节。只有空时隙对象有16个字节,没有数据的实例没有什么意义。

而且,每个函数定义都有代码对象,可能是docstring和其他可能的属性,甚至是__dict__.

我认为,在64位机器上,每增加一个项目引用8个字节是很有意义的。这8个字节指向内存中包含的项所在的位置。如果我没记错的话,Python 2中的Unicode的4个字节是固定的宽度,但是在Python 3中,str变成了宽度等于字符最大宽度的Unicode。

我们需要一个函数来搜索列表、元组、集合、切分中的元素,obj.__dict__obj.__slots__以及其他我们可能还没有想到的事情。

我们想依靠gc.get_referents执行此搜索,因为它在C级别工作(使其非常快)。缺点是GET_Referents可以返回冗余成员,因此我们需要确保不进行双重计数。

类、模块和函数是单个的-它们在内存中存在过一次。我们对它们的大小不太感兴趣,因为我们对它们无能为力-它们是项目的一部分。因此,如果它们碰巧被引用,我们将避免计算它们。

我们将使用黑名单的类型,所以我们不包括整个程序在我们的大小计数。

与以下白名单中的函数相比,大多数对象都知道如何为垃圾收集的目的遍历自己(当我们想知道某些对象在内存中的开销时,这几乎就是我们要寻找的。使用此功能的gc.get_referents)然而,如果我们不小心,这项措施的范围将比我们打算的要大得多。

例如,函数非常了解在其中创建的模块。

另一个对比点是,作为字典中键的字符串通常是内嵌的,因此它们不会被复制。检查id(key)也将允许我们避免计算重复数,这是我们在下一节中所做的。黑名单解决方案跳过计算字符串的键。

白色类型,递归访问者(旧实现)

为了自己涵盖这些类型中的大多数,我编写了这个递归函数,而不是依赖于GC模块,以尝试估计大多数Python对象的大小,包括大多数内置器、集合模块中的类型和自定义类型(时隙和其他类型)。

这类函数对我们将要计算的内存使用类型提供了更细粒度的控制,但有将类型排除在外的危险:

我对它的测试相当随意(我应该对它进行单元测试):

这个实现对类定义和函数定义进行了分解,因为我们并不追求它们的所有属性,但是由于它们应该只在进程的内存中存在一次,所以它们的大小并不重要。


推荐于 · TA获得超过3.5万个赞


推荐于 · TA获得超过303个赞

下载百度知道APP,抢鲜体验

使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 python数字和字母比大小 的文章

 

随机推荐