redis-py 导致 python CPU 占满?

2015-11-15 23:21:48 +08:00
 abcdabcd987

用 tornado 架了个网站,发现在高并发的情况下 python 的 CPU 占用率很高,做了一下 profile ,发现所有通过 redis-py 操作 redis 的地方 CPU 占用率都特别高。如下图 r.xxx() 以及 lua_xxx()

觉得很奇怪,如果说是阻塞住了,照道理来说 python 的 CPU 应该是空闲的呀?此外 redis-server 的负载很轻。求解这个是为什么?如何解决,或者如何查找问题?

2338 次点击
所在节点    问与答
7 条回复
wy315700
2015-11-15 23:33:09 +08:00
装个 hiredis 试试看
aisk
2015-11-15 23:43:44 +08:00
你选中的那项 30.1 ,确定没有算阻塞之后进程挂起的时间进去吗?
abcdabcd987
2015-11-15 23:48:38 +08:00
@aisk 呃,阻塞的话, top 看 python 也不应该是 100% 吧?
abcdabcd987
2015-11-16 00:48:41 +08:00
@wy315700 没有作用
aisk
2015-11-16 11:16:14 +08:00
@abcdabcd987 是不应该吃到 100 %。可以把 lua_place_order 发一下看看。
abcdabcd987
2015-11-16 13:43:51 +08:00
@aisk 咦, lua 不是在 redis-server 跑么?会占 python CPU?
aisk
2015-11-16 19:48:47 +08:00
@abcdabcd987 是,但是不看代码也不知道这个函数都在干嘛。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/236412

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX