hongweipeng 发布的文章

Django 源码阅读(六):深入理解WSGI协议


起步

惭愧啊,惭愧啊,距离上一篇这个系列的文章已经是半年前的了,随着 Django2.0 的发布,感觉之前分析的 1.10.5 版本似乎有点老了,我看了一下,好在和我前面文章分析的内容差异不大,基本上也是可以就着前面的分析内容来品尝最新的 django 代码。

那我接下来阅读的版本就从当前能获取的 2.0.6 来分析了。不过呢,本章要将的内容,可能和 django 代码本身没太多关系。本章来理解一下 WSGI 协议,django 就是遵守这个协议的web开发框架,本章重点是协议方面的说明,顶多会讲讲django里相应的 wsgi 的代码,而不对 django 代码做分析。


深度剖析凭什么python中整型不会溢出


前言

本次分析基于 CPython 解释器,python3.x版本

在python2时代,整型有 int 类型和 long 长整型,长整型不存在溢出问题,即可以存放任意大小的整数。在python3后,统一使用了长整型。这也是吸引科研人员的一部分了,适合大数据运算,不会溢出,也不会有其他语言那样还分短整型,整型,长整型...因此python就降低其他行业的学习门槛了。

那么,不溢出的整型实现上是否可行呢?


用libvirt为虚拟机创建快照


快照的类型

kvm环境下 qcow2 的镜像支持快照,有几种类型的快照:

  • 磁盘快照:磁盘的内容(vm关联的所有磁盘)都会在给定的时间点保存,并且可以恢复到该状态。如果是正在运行的vm,磁盘快照很可能只是崩溃的(它表示突然停电时的磁盘状态)。磁盘快照可以可以放在内部也可以放在外部。
    • 按快照信息保存可以分为:内置快照和外置快照;
    • 按照vm状态可以分为:关机状态快照和运行状态快照;
    • 按磁盘数量可以分为:单盘和多盘;多盘情况具有原子性,即所有盘的快照点相同,并且创建快照时,要么都快照成功,要么都快照失败。
  • 内存状态:仅保存内存的状态以及vm正在使用的其他资源。如果在获取和恢复vm状态快照之间磁盘未被修改,则guest虚拟机将恢复一致状态;但如果在此期间磁盘被外部修改,则很可能导致数据损坏;
  • 系统检查点:所有磁盘的磁盘快照和vm内存状态的组合,可用于恢复客户机从停止位置恢复类似于休眠的状态。