我INFO CPU在Redis CLI中运行了命令并获得了如下所示的输出:
used_cpu_sys:4785.73
used_cpu_user:4843.73
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
Run Code Online (Sandbox Code Playgroud)
我的问题是:这些数字的单位是多少?
是CPU时间,CPU消耗还是别的什么?
我有一个 Web 应用程序,它使用 Google 的数据存储区,并且在收到足够多的请求后内存不足。
我已将其范围缩小到数据存储查询。下面提供了一个最小的 PoC,一个稍长的版本,包括内存测量在 Github 上。
from google.cloud import datastore
from google.oauth2 import service_account
def test_datastore(entity_type: str) -> list:
creds = service_account.Credentials.from_service_account_file("/path/to/creds")
client = datastore.Client(credentials=creds, project="my-project")
query = client.query(kind=entity_type, namespace="my-namespace")
query.keys_only()
for result in query.fetch(1):
print(f"[+] Got a result: {result}")
for n in range(0,100):
test_datastore("my-entity-type")
Run Code Online (Sandbox Code Playgroud)
分析流程 RSS 显示每次迭代大约增长 1 MiB。即使没有返回结果,也会发生这种情况。以下是我的 Github 要点的输出:
[+] Iteration 0, memory usage 38.9 MiB bytes
[+] Iteration 1, memory usage 45.9 MiB bytes
[+] Iteration 2, memory usage 46.8 MiB …Run Code Online (Sandbox Code Playgroud)