V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sniperking1234
V2EX  ›  问与答

如何获取一次请求调用占用的内存

  •  
  •   sniperking1234 · 2020-04-20 10:27:57 +08:00 · 1649 次点击
    这是一个创建于 1663 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在调研函数计算,也就是 serverless 相关的功能。

    发现阿里云和腾讯云中都会显示出这一次调用所占内存,但是没想出来这个内存占用应该怎么计算。

    求助 v2 大佬们,有什么方法可以把一次请求的内存消耗计算出来吗。 image.png

    12 条回复    2020-04-20 15:55:30 +08:00
    imherer
        1
    imherer  
       2020-04-20 10:44:39 +08:00
    会不会就是取的当前服务器使用内存啊?或者是调用前统计一次内存,请求的时候再统计一次,做一个差值?

    瞎猜的...
    wysnylc
        2
    wysnylc  
       2020-04-20 10:50:03 +08:00
    @imherer #1 阿基米德的浴缸
    sniperking1234
        3
    sniperking1234  
    OP
       2020-04-20 10:51:44 +08:00
    @imherer 没有并发的时候可以这么算,但是如果同时有 5 个请求的话,不能除以 5 求平均值吧,所以这个方法就不适用了。
    gemini767
        4
    gemini767  
       2020-04-20 11:54:21 +08:00
    同样函数 请求处理 1k 和 1m 的数据 正常返回,看各占内存多少,求出每次请求处理占内存大小的均值
    listenerri
        5
    listenerri  
       2020-04-20 12:03:23 +08:00
    LD_PRELOAD 的方式?亦或类似于 Valgrind 的工作原理?但这应该会有性能问题。等大神解惑。
    sniperking1234
        6
    sniperking1234  
    OP
       2020-04-20 12:38:26 +08:00
    @gemini767 函数都是用户编写的,在运行之前并不知道要运行什么
    @listenerri 我去看下这种方式
    gwy15
        7
    gwy15  
       2020-04-20 12:41:24 +08:00
    docker stats 吧……
    whileFalse
        8
    whileFalse  
       2020-04-20 13:24:35 +08:00
    没明白你的目的是什么?
    同时有五个请求的话,每个请求会拉起一个独立的函数。单个函数不会同时 handle 两个请求的。
    otakustay
        9
    otakustay  
       2020-04-20 13:42:36 +08:00
    serverless 每次函数调用都是干净的环境跑一次进程的,这个过程中用内存 profile 记录下来就行,实质是进程的内存占用,而不是你的函数的
    sniperking1234
        10
    sniperking1234  
    OP
       2020-04-20 13:50:22 +08:00
    @gwy15 同样有多个请求无法处理的情况

    @whileFalse 所以怎么看单个函数内存占用呢

    @otakustay 我们使用的原型是 knative,如果超过一分钟没有请求,就结束这个 pod,也就是结束进程。但是如果在短时间有多次请求的话,会使用同一个 pod,并不是每次请求都是独立的进程
    otakustay
        11
    otakustay  
       2020-04-20 13:56:16 +08:00
    @sniperking1234 我理解短时间内多次复用同一个容器,不是同一个进程吧?内存采样到进程上就行
    sniperking1234
        12
    sniperking1234  
    OP
       2020-04-20 15:55:30 +08:00
    @otakustay 是同一个 web 进程。。所以感觉有点难办
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1310 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 17:52 · PVG 01:52 · LAX 09:52 · JFK 12:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.