电脑主机连接显示器显示enteringentering power save mode

#define PyObject_HEAD
_PyObject_HEAD_EXTRA
Py_ssize_t ob_
struct _typeobject *ob_
typedef struct _object {
PyObject_HEAD
所以问题是:我们在写入时复制的是不可变对象如代码对象吗?假定 PyCodeObject 确实是 PyObject 的“子类”,显然也是这样的。我们的第一想法是禁用 PyCodeObject 的引用计数。 第1次尝试:禁用代码对象的引用计数 在 Instagram 上,我们先做一件简单的事情。考虑到这是一个实验,我们对 CPython 解释器做了一些小的改动,验证了引用计数对代码对象没有变化,然后在我们的一个生产服务器运行 CPython。 结果是令人失望的,因为共享内存没有变化。当我们试图找出原因是,我们意识到我们找不到任何可靠的指标来证明我们的黑客行为起作用,也不能证明共享内存和代码对象的拷贝之间的联系。显然,这里缺少一些东西。获得的教训:在行动之前先验证你的理论。 页面错误分析 在对 Copy-on-Write 这个问题谷歌搜索一番以后,我们了解到 Copy-on-Write 与系统中的页面错误是相关联的。每个 CoW 在运行过程中都可能触发页面错误。Linux 提供的 Perf 工具允许记录硬件/软件系统事件,包括页面错误,甚至可以提供堆栈跟踪! 所以我们用到了一个 prod,重新启动该服务器,等待它 fork,继而得到一个工作进程 PID,然后运行如下命令。
perf record -e page-faults -g -p &PID&
然后,当在堆栈跟踪的过程中发生页面错误时,我们有了一个主意。 结果与我们的预期不同。首要嫌疑人是 collect 而非是复制代码对象,它属于 gcmodule.c,并在触发垃圾回收时被调用。在理解了 GC 在 CPython 中的工作原理后,我们有了以下理论: CPython的 GC 完全是基于阈值而触发的。这个默认阈值非常低,因此它在很早的阶段就开始了。 它维护着许多代的对象链表,并且在进行 GC 时,链表会被重新洗牌。因为链表结构与对象本身一样是存在的(就像 ob_refcount),在链表中改写这些对象会导致页面在写入时被复制,这是一个不幸的副作用。
/* GC information is stored BEFORE the object structure. */
typedef union _gc_head {
union _gc_head *gc_
union _gc_head *gc_
Py_ssize_t gc_
/* force worst-case alignment */
第2次尝试:让我们试试禁用GC 那么,既然 GC 在暗中中伤我们,那我们就禁用它! 我们在我们的引导脚本添加了一个 gc.disable() 的函数调用。我们重启了服务器,但是再一次的,不走运! 如果我们再次查看 perf,我们将看到 gc.collect 仍然被调用,并且内存仍然被复制。在使用 GDB 进行一些调试时,我们发现我们使用的第三方库( msgpack )显然调用了 gc.enable() 将它恢复了,使得 gc.disable() 在引导程序中被清洗了。 给 msgpack 打补丁是我们最后要做的事情,因为它为其他做同样的事情的库打开了一扇门,在未来我们没注意的时候。首先,我们需要证明禁用 GC 实际上是有帮助。答案再次落在 gcmodule.c 上。 作为 gc.disable 的替代,我们做了 gc.set_threshold(0),这一次,没有库能将其恢复了。 就这样,我们成功地将每个工作进程的共享内存从 140MB 提高到了 225MB,并且每台机器的主机上的总内存使用量减少了 8GB。 这为整个Django 机队节省了 25% 的 RAM。有了这么大头的空间,我们能够运行更多的进程或运行具有更高的 RSS 内存阈值的进程。实际上,这将Django层的吞吐量提高了 10% 以上。 第3次尝试:完全关闭 GC 需要多次往复 在尝试了一系列设置之后,我们决定在更大的范围内尝试:一个集群。 反馈相当快,我们的连续部署终止了,因为在禁用 GC 后,重新启动我们的 Web 服务器变得很慢。通常重新启动需要不到 10 秒,但在 GC 禁用的情况下,它有时需要 60 秒以上。
_21:46:05.57499 WSGI app 0 (mountpoint='') ready in 115 seconds on interpreter 0x92f480 pid: 4024654 (default app)
复制这个 bug 是非常痛苦的,因为它不是确定发生的。经过大量的实验,一个真正的 re-pro 在顶上显示。当这种情况发生时,该主机上的可用内存下降到接近零并跳回,强制清除所有的缓存内存。之后当所有的代码/数据需要从磁盘读取的时候(DSK 100%),一切都变得很缓慢。 这敲响了一个警钟,即 Python 在解释器关闭之前会做一个最后的 GC,这将导致在很短的时间内内存使用量的巨大跳跃。再次,我想先证明它,然后弄清楚如何正确处理它。所以,我注释掉了对 Py_Finalize 在 uWSGI 的 python 插件的调用,问题也随之消失了。 但显然我们不能只是禁用 Py_Finalize。我们有一系列重要的使用 atexit 钩子的清理工具依赖着它。最后我们做的是为 CPython 添加一个运行标志,这将完全禁用 GC。 最后,我们要把它推广到更大的规模。我们在这之后尝试在整个机队中使用它,但是连续部署再次终止了。然而,这次它只是在旧型号 CPU( Sandybridge )的机器上发生,甚至更难重现了。得到的教训:经常性地在旧的客户端/模型做测试,因为它们通常是最容易出问题的。 因为我们的连续部署是一个相当快的过程,为了真正捕获发生了什么,我添加了一个单独的 atop 到我们的 rollout 命令中。我们能够抓住一个缓存内存变的很低的时刻,所有的 uWSGI 进程触发了很多 MINFLT(小页错误)。 再一次地,通过 perf 分析,我们再次看到了 Py_Finalize。 在关机时,除了最终的 GC,Python 还做了一系列的清理操作,如破坏类型对象和卸载模块。这种行为再一次地,破坏了共享内存。 第4次尝试:关闭GC的最后一步的GC:无清除 我们究竟为什么需要清理? 这个过程将会死去,我们将得到另一个替代品。 我们真正关心的是我们的 atexit 钩子,为我们的应用程序清理。至于 Python 的清理,我们不必这样做。 这是我们在自己的 bootstrapping 脚本中以这样的方式结束:
# gc.disable() doesn't work, because some random 3rd-party library will
# enable it back implicitly.
gc.set_threshold(0)
# Suicide immediately after other atexit functions finishes.
# CPython will do a bunch of cleanups in Py_Finalize which
# will again cause Copy-on-Write, including a final GC
atexit.register(os._exit, 0)
这是基于这个事实,即 atexi t函数以注册表的相反顺序运行。atexit 函数完成其他清除,然后在最后一步中调用 os._exit(0) 以退出当前进程。 随着这两条线的改变,我们最终让它在整个机队中得以推行。在小心地调整内存阈值后,我们赢得了 10 % 的全局容量! 回顾 在回顾这次性能提升时,我们有两个问题: 首先,如果没有垃圾回收,是不是 Python 的内存要炸掉,因为所有的分配出去的内存永远不会被释放?(记住,在 Python 内存没有真正的堆栈,因为所有的对象都在堆中分配)。 幸运的是,这不是真的。Python 中用于释放对象的主要机制仍然是引用计数。 当一个对象被解引用(调用 Py_DECREF)时,Python 运行时总是检查它的引用计数是否降到零。在这种情况下,将调用对象的释放器。垃圾回收的主要目的是终止引用计数不起作用的那些引用周期。
#define Py_DECREF(op)
if (_Py_DEC_REFTOTAL
_Py_REF_DEBUG_COMMA
--((PyObject*)(op))-&ob_refcnt != 0)
_Py_CHECK_REFCNT(op)
_Py_Dealloc((PyObject *)(op));
} while (0)
增益分析 第二个问题:增益来自哪里? 禁用 GC 的增益来源于两重原因:
我们为每个服务器释放了大约 8GB 的 RAM,这些 RAM 我们会用于为内存绑定的服务器生成创建更多的工作进程,或者用于为绑定 CPU 服务器们降低重新生成速率; 随着 CPU 指令数在每个周期( IPC)增加了约 10%,CPU吞吐量也得到改善。
# perf stat -a -e cache-misses,cache-references -- sleep 10
Performance counter stats for 'system wide':
268,195,790
cache-misses
12.240 % of all cache refs
2,191,115,722
cache-references
10. seconds time elapsed
禁用 GC 时,有 2-3% 的缓存缺失率下降,这是 IPC 有 10 % 提升的主要原因。CPU 高速缓存未命中的代价是昂贵的,因为它会阻塞 CPU 流水线。 对 CPU 缓存命中率的小改进通常可以显着提高IPC。使用较少的 CoW,具有不同虚拟地址(在不同的工作进程中)的更加多的 CPU 高速缓存线,指向相同的物理存储器地址,使得高速缓存命中率变得更高。 正如我们所看到的,并不是每个组件都按预期工作,有时,结果会非常令人惊讶。 所以保持挖掘和嗅探,你会惊讶于万物到底是如何运作的! Wu Chenyang 是一名软件工程师,而 Ni Min 则是 Instagram 的工程经理。
关于作者:
转载请注明: >>
高效,专业,符合SEO关于约单的一些事情
恩,我现在上班了,所以约拍不像上学的时候那么灵活。所以需要给大家提醒一些事情。1,我拍照是收费的,不是免费的,所以不用想着请我吃饭的事情了。。。。。。。。2,我现在上班了,所以有时会有课,不是啥时候都可以接单子的。。。3,虽然我不坐班,但是周二和周五是例行的值班时间,所以没有办法接单子。。。。4,这个学期我的课安排在周一、周三、周四三天晚上,所以六、日可以接单子,周一周三周四白天要看情况。以上2-4条是这个学期的空闲时间安排,下学期还会有其他变化。5,收费标准是300元起,3元一张按快门数计费,限邯郸校区内,人数没限制,张数也没有上限,反正超了就一张3元往上加。6,如果是拍婚纱,一样300元起,5元一张按快门数计费,同样限邯郸校区内,人数没限制,张数没上限。7,如果出了邯郸校区,例如去江湾校区或者外滩神马地方等,需要额外增加100元外景费用。8,如果要在学校拍婚纱,请先去保卫处登记。如果想去图书馆里面拍,请先帮我借张一卡通,我的一卡通过期了~~~9,我后期会处理一半的照片,包括调整曝光,磨皮,但是不会修身材,液化改脸型,调色等。处理后的照片和所有原片会刻录光盘给你们。10,多人合影时,请留意衣服的风格协调;短裙短裤时请携带驱蚊水。11,拍摄结束后,我会询问是否可以选一些照片放相册,经同意后才会打上logo放我相册。4-11条是计费方式以及注意事项。另:不要因为我便宜就找我拍,关键是你们能够接受我拍的照片的风格。所以请仔细翻阅以前我拍过的同学的照片以作对比:
/photo//album-
/photo//album-
/photo//album-12,如果我没有时间接单子,你又着急拍,可以找我女朋友。她的日志如下:
/blog/672248
分享这篇日志的人也喜欢
我想留住你呀。
晚上好,来聊聊天啊
亲我一下我就笑给你看啦
日常签个到
谁还记得最初的我,满腔热血
给我一首歌的时间
就干就完了!
热门日志推荐
人人最热标签
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字
文化部监督电子邮箱:wlwh@··
文明办网文明上网举报电话: 举报邮箱:&&&&&&&&&&&&
请输入手机号,完成注册
请输入验证码
密码必须由6-20个字符组成
下载人人客户端
品评校花校草,体验校园广场这是个机器人猖狂的时代,请输一下验证码,证明咱是正常人~约单-嘉泽无限
如果你是该公司的创始人、项目/产品经理等,欢迎认领公司主页,以享有更多编辑管理权限。
真实姓名 *
请尽量使用企业邮箱
手机号码 *
个人名片 *
请上传真实有效的个人名片,名片上的公司名称应该与所认领的公司名称保持一致;请确保你是该公司的创始人或者其他相关在职成员;请勿上传其他不相关的证件,以免影响审核通过率;上传图片支持2M以内的PNG、JPG、GIF格式。
内容责任声明: 用户作为内容的发表或采集者,需自行对所发表或采集的内容负责,因所发表或采集的内容引发的一切纠纷、损失,由该内容的发表或采集者承担全部直接或间接(连带)法律责任,IT桔子不承担任何法律责任。
Slogan:请用一句话描述产品方向和公司主要业务。(15字以内)
完善微博等企业账号,方便投资人、创业者更全面地了解公司。
内容责任声明: 用户作为内容的发表或采集者,需自行对所发表或采集的内容负责,因所发表或采集的内容引发的一切纠纷、损失,由该内容的发表或采集者承担全部直接或间接(连带)法律责任,IT桔子不承担任何法律责任。
(公司TAG部分暂不开放用户编辑。)
下载IT桔子客户端App
互联网创投信息一手掌握
约单是一个时间交易平台,用户可出售自己的时间;同时也可以在平台上出售自己的技能服务。嘉泽无限(北京)网络科技有限公司旗下产品。
公司全称:嘉泽无限(北京)网络科技有限公司
成立时间:2015.3 &&
公司规模:暂未收录
上传公司截图
约单是一个时间交易平台,用户可出售自己的时间;同时也可以在平台上出售自己的技能服务。嘉泽无限(北京)网络科技有限公司旗下产品。
请以客观中立地语言描述产品和公司主营业务。(150字以内)
工商注册全称
500-1000人
2000人以上
内容责任声明: 用户作为内容的发表或采集者,需自行对所发表或采集的内容负责,因所发表或采集的内容引发的一切纠纷、损失,由该内容的发表或采集者承担全部直接或间接(连带)法律责任,IT桔子不承担任何法律责任。
投资方未透露
本地生活行业热度图
朱武杰,约单创始人、CEO。
时间交易平台
*一句话介绍
请客观中立的描述简要概括产品业务信息。(30字以内)
买卖时间和服务
*一句话介绍
请客观中立的描述简要概括产品业务信息。(30字以内)
*一句话介绍
请客观中立的描述简要概括产品业务信息。(30字以内)
【产品介绍】
“约单”是一个时间售卖与技能交易的平台,致力于
未收录相关信息
数据来源 权大师湖北神农架手机网友
终于明白上海凤凰为什么连续大涨了,不是国企改革,而且站上了网约单车的风口,我到过
终于明白为什么连续大涨了,不是国企改革,而且站上了网约单车的风口,我到过的海珠区,白云区,大街小巷都是骑摩拜单车的帅哥美女,在广州大力禁摩的今天,单车即方便最后一公里出行,又迎合了缺少身体锻炼的青年,中年人以及少年们的心。费用才5毛到一元,远远便宜于摩托车一公里5元。
湖北神农架网友
君不见生产永久自行车的中路股份和上海凤凰异动连连吗?
你现在才发现啊?反应迟钝的!
【上海试行网约单车:借还难题破解 市民只管用】【凤凰网约单车】 16:13:07网约单车:社会治理的一股新风近来,网约单车风行,不仅年轻人喜欢,中老年人也加入进来。据了解,网约单车在上海试行以来,已投入数万辆,发展速度飞快。这得益于网约单车智能化,即解决了找车和归还两个环节问题,真正为市民提供便利。网约单车兴起算不上是个大事,但在社会治理方面却有着深刻的意义。当前,上海居民出行的时间、精力成本高开高走,市区人口众多密集,交通拥挤已成为制约上海市民幸福感受的重要因素。各级政府尝试了许多解决居民出行“最后一公里”难题的办法,也设置过许多固定的自行车停放点,用公交卡或其它充值卡付费使用,但最终效果不佳。网约单车是由企业采取市场化运营方式投放单车,市民可用自己的手机查看单车位置,预约并找到车辆,通过扫描车身上的二维码开锁即可骑行,到达目的地后,在街边任意划白线区域内手动锁车完成归还手续。网约单车摒弃了固定的车桩模式,允许将单车随意停放在路边任何有政府划线的停放区域,用户只需将单车合上车锁即可离去。企业运用互联网+技术改进,把“借”和“还”两个关键难题破解...
【上海试行网约单车:借还难题破解 市民只管用】【凤凰网约单车】 16:13:07网约单车:社会治理的一股新风近来,网约单车风行,不仅年轻人喜欢,中老年人也加入进来。据了解,网约单车在上海试行以来,已投入数万辆,发展速度飞快。这得益于网约单车智能化,即解决了找车和归还两个环节问题,真正为市民提供便利。网约单车兴起算不上是个大事,但在社会治理方面却有着深刻的意义。当前,上海居民出行的时间、精力成本高开高走,市区人口众多密集,交通拥挤已成为制约上海市民幸福感受的重要因素。各级政府尝试了许多解决居民出行“最后一公里”难题的办法,也设置过许多固定的自行车停放点,用公交卡或其它充值卡付费使用,但最终效果不佳。网约单车是由企业采取市场化运营方式投放单车,市民可用自己的手机查看单车位置,预约并找到车辆,通过扫描车身上的二维码开锁即可骑行,到达目的地后,在街边任意划白线区域内手动锁车完成归还手续。网约单车摒弃了固定的车桩模式,允许将单车随意停放在路边任何有政府划线的停放区域,用户只需将单车合上车锁即可离去。企业运用互联网+技术改进,把“借”和“还”两个关键难题破解了,解决了多年的尴尬。网约单车的发展,一方面可以助推城市居民绿色出行,优化出行方式。网约单车号称不怕“偷盗”的单车,市民只管“用”,不考虑“管”,减轻了精神顾虑和看管负担,这样便于市民日常生活中的上银行、邮局、菜场或上下班乘地铁、公交转接等短程出行,减少开车堵、停车难、怒路多的负面生活体验;另一方面城市可以腾挪出更多的公共空间,增强城市居民的舒适度。网约单车动态性强,比如骑自行车到地铁站、超市等地点,自行车要长时间静止停放,占用大量的户外空间,而在车流人流密集的要道站口场地十分稀缺,网约单车被人骑来了又被人骑走了,流动频次高,相对占地面的小,可在地铁站等密集地节约腾挪出一定的场地空间,增加公共空间可调控性,也会给市民带来更多的舒适感。网约单车风行而起,对当前基层社会治理创新带来一阵清风,给我们三个方面的启示。一要发挥企业在社会治理方面的主体作用。当前推动社会治理创新比较重视社会组织、志愿者参与等,而忽视市场的力量,企业的主体作用。在互联网时代里,企业是公共服务的提供者或中介者,它们消费者导向意识强烈,解决技术性环节上问题更专业,通过移动互联网将“人”与“公共服务”以数字化的方式全面连接,这有利于降低政府投入和服务成本,提升社会公共服务效率和水平,促进“智慧民生”的转型升级。二政府不能满足当“观众”拍拍手,要助推企业解决它们解决不了的问题,否则开花不一定结果,叫好不一定叫座。比如网约单车要停放在划白线的区域,近几年来,划白线的区域有些时间长了已经看不出来,有些因为开挖等工程也消失了,有些因为各种创建活动要求不一也被整改了,因此需要政府有关部门重新规划,重新划线。三对社会治理有益的创新的方式需要呵护。新生事物有不足、短处,这需要各方面尤其的有远见的公益性社会组织介入,共同护送前行。比如网约单车投放后存在一些损坏二维码的破坏行为,有骑进小区、不放入划白线区域的各种行为,这是企业力不从心的事,也不全是政府能解决的事,需要各方营造良好的氛围,集聚社会力量共同砥砺前行。(上海市杨浦区社会建设工作办公室副主任何志东)
兄弟,抱团啊!上次在0912也遇到你!最近老遇到你哦!
评论该主题
作者:您目前是匿名发表 &
作者:,欢迎留言
提示:用户在社区发表的所有资料、言论等仅代表个人观点,与本网站立场无关,不对您构成任何投资建议。用户应基于自己的独立判断,自行决定证券投资并承担相应风险。

我要回帖

 

随机推荐