首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
V2EX  ›  全球工单系统

阿里云超售了?明明买的 1g 内存,现在系统内查看只有 500MB 不到。

  •  
  •   keepeye · 44 天前 · 5243 次点击
    这是一个创建于 44 天前的主题,其中的信息可能已经有所发展或是发生改变。
    专有网络

    1 vCPU 1 GiB (I/O 优化)

    ecs.t5-lc1m1.small 1Mbps


    free -m 结果

    total used free shared buff/cache available
    Mem: 487 140 155 0 191 321
    Swap: 0 0 0


    我说怎么 supervisord 进程都被强杀了,系统变的卡卡的,结果是内存变小一半多
    第 1 条附言  ·  43 天前
    问题在重启服务器后得到解决,发工单客服给的解释是 512M 升级到 1g 没重启导致的,虽然我并没有升级过,也不打算追究了。

    至于 supervisor 日志显示的就是 kill -9,没有其他信息了,可以保证我没有执行过这个命令

    至于 free -m 显示结果是否准确?不想深究,总之这里肯定是有问题的,大家也不用争来争去的没意思。
    48 回复  |  直到 2019-07-08 19:40:40 +08:00
        1
    Duluku   44 天前 via iPhone
    只要是基础服务商,就存在超售现象。这是很常见的,做法是工单解决(虽然也不一定能够得到解决…)云服务商如何调配资源,就是及时调整策略已满足客户需要才是他们琢磨的问题。
        2
    gstqc   44 天前 via Android
    你不会查下每个字段是什么意思吗?
        3
    yukiww233   44 天前
    没看出来结果哪里有问题
        4
    blankme   44 天前
    这个是 0.5G 的配置,应该是给你分配错机型了
        5
    ruimz   44 天前 via Android   ♥ 8
    想看 2,3 楼怎么解释按 m 输出 total487 是 1G 内存
        6
    mason961125   44 天前
    找客服 ❎
    上 V2EX ✅
        7
    gstqc   44 天前 via Android
    @ruimz dmesg 不会用吗?
    free 又查不了物理内存

    自己不明白就问 为什么我 1G 内存用 free 显示只有 0.5G
        8
    shiji   44 天前
    @gstqc 我觉得 free -m 没毛病。
        9
    houzhimeng   44 天前   ♥ 2
    @gstqc #7 你为何如此自信
        10
    Windelight   44 天前 via Android
    其实这个还是坑人的,因为腾讯云我也遇见过,他有一个为硬件保留的内存,我特码这不都是已经虚拟化了你去哪给硬件保留去?
        11
    Humorce   44 天前
    @gstqc #7

    你的 free 是从 ludashi 源 安装的?
        12
    ruimz   44 天前 via Android   ♥ 7
    @gstqc 你为什么不继续#2 说明为什么查明 free -m 每个字段的含义就可以解决楼主的问题?
    #7 又开始 dmesg,就算 dmesg 可以说明楼主的问题,那你为什么不在#2 说明呢?

    何况有问题为什么要问你?从#2 和#7 来看,你除了秀优越感以外,能对问题做出什么有效回答吗?
        13
    chinesestudio   44 天前 via Android
    top 不会用么
        14
    XiaoxiaoPu   44 天前
    应该分配错了,提工单解决吧。另外云平台超售也只超售 cpu、io,内存不超售。
        15
    gstqc   44 天前
    @Humorce #11 如果你不明白 free 为什么显示的不是物理内存就没必要讨论了

    @houzhimeng
    @ruimz 是是是,阿里云超售了。是不是感觉心里很舒畅
        16
    troywinter   44 天前
    先别忙着下结论,你解决问题的思路就不对,目前你列出的证据没有说明进程被强杀和内存有关系,你先看看 supervisor 的 log 看看是什么原因,也许不是阿里云的问题呢?
        17
    Humorce   44 天前
    @gstqc #14
    free 非实际物理内存,也不会把 1G 显示成 487M。
        18
    poplar50   44 天前 via Android
    total 487 是肯定有毛病
        19
    leekafai   44 天前 via Android
    free 显示的不是物理内存跟 op 提的问题有啥联系?难道阿里云是给你物理主机?可能这就是大佬吧。
        20
    martinsu   44 天前
    原来,不明白 free 命令是什么原理,就丧失了讨论的资格。瞬间感觉自己好渺小,大佬好强大 [doge]
        21
    sunsmooth   44 天前 via iPhone
    cat /proc/meminfo
    或者 top 看看
        22
    Nitroethane   44 天前   ♥ 2
    在没有作任何调查的情况下不要妄下结论,先去看看 supervisord 的日志去排查下错误。
    再者,根据 free 的 manual,free 的输出中 total 字段是 /proc/meminfo 中 MemTotal 和 SwapTotal 两个字段的和,因此 total 的值实际是物理内存和交换空间二者的和。
    还有前面的,好好回答问题可以吧,别一上来就戾气那么大
        23
    swulling   44 天前 via iPhone
    内存不会超售的…联系客服
        24
    Duluku   44 天前 via iPhone   ♥ 1
    内存不超售的话…为什么我阿里云有时候 MySQL 启动不了、报错是内存不足… 然后我改 MySQL 分配的内存、改到 128M 都是偶尔能启动、偶尔失败… 最后就放弃了…当然、free 当时每次都说有 1g 内存,我反正是不信的
        25
    feelinglucky   44 天前
    cat /proc/meminfo | grep MemTotal

    看看,建议提个工单
        26
    feelinglucky   44 天前
    PS,补充下,个人有个习惯,就是任何交付的环境跑之前用 unixbench 跑跑性能,看看有没有问题,供参考
        27
    lincanbin   44 天前 via Android
    阿里云 ECS 是 XEN 虚拟化的虚拟机,内存是无法超售的。
    估计是分配错了,提工单让客服看下。
        28
    uyhyygyug1234   44 天前
    恭喜楼主喜提 bug
        29
    jadec0der   44 天前
    超售的问题主要出在 cpu 和 io 上吧,内存超售也太…明目张胆了
        30
    mason961125   44 天前
    @lincanbin #25 张口就来 Xen ?
        31
    opengps   44 天前 via Android
    超售不会让你看到小的,楼主超售的概念还没搞明白,t5 是名副其实的超售
        32
    p2p   44 天前
    每个贴里都是人才倍出😑
        33
    ivmm   44 天前
    是实例分配错了,超售不是这个意思。

    按契约来,阿里云的共享型、性能突发型的都是标明的性能共享,超售的。

    计算型、内存型这样的都是性能独享的。
        34
    c0878   44 天前
    内存不会超售的 你这个应该是系统开错机器了 发个工单附上订单号和实例 id 让客服解决就好
        35
    1234rty   44 天前
    超售要是能让你一眼看出来就不叫超售了
        36
    xiaolanger   44 天前
    虽然不知道阿里云的内存会不会超售,但是,超售的话,你这么看应该是看不出来的
        37
    lincanbin   44 天前 via Android
    @mason961125 早年是 XEN,刚查了下,现在是 KVM 虚拟化,一样是无法超售内存的。
        38
    liuxey   43 天前
    发现有些人可能不懂 Linux,哈哈
        39
    cubecube   43 天前 via Android
    @lincanbin vmware 可以超售内存,我们内网测试环境经常超售,坑爹
        40
    Cloutain   43 天前
    让你见识见识我套路云的厉害
        41
    xman99   43 天前
    嗯 , 找客服聊聊人生吧
        42
    skymei   43 天前
    超售正常的,我之前就干过,没办法用户要新开,母机内存达到上限, 只能调下某些客户的配置,虽然不太好 /(ㄒoㄒ)/~~,但是老大让我这么干的
        43
    dot2017   43 天前
    难道楼上有些人不是用 free -m 查内存的么……
        44
    firemiles   43 天前
    free -m 会隐藏部分系统保留内存,但也不会保留 500M 那么多
        45
    goodryb   43 天前
    根据楼主提供的规格型号来看,确实是 1CPU 1G 内存的,所有规格可以在这里查看 https://help.aliyun.com/document_detail/25378.html

    建议楼主先确认下是不是规格型号搞错了,如果没错,提交工单咨询下客服看如何处理,结果最好也 append 一下

    另外,不管是 xen 还是 kvm,内存都是不超卖的。
        46
    zqfxch   43 天前
    提工单查一下吧,内存是不超卖的,分配错误的可能性也很小,总之要么搞错了规格要么真的见了匪夷所思的 bug
        47
    suriv520   43 天前   ♥ 2
    ✅ 避免预设立场的提问
    ✅ 避免反问式回答
    ✅ 关注问题本身与解决问题本身

    大家都好好说话。

    我想说的是,**无论是否超售,都应该是无法简单地通过 free 来判断的。**
    市场上的虚拟化架构,hypervisor 声明了多少内存空间,虚拟机里面就会显示多少内存空间。即使宿主机只有 2G,也可以让 hypervisor 声明出一个 64G 内存的虚拟环境出来。操作系统本身没有可靠途径检测“实际可用”的内存大小(非得要检测的话那就是跑实际的 memtest 了)。只不过当虚拟机操作系统开始申请超过实际剩余的空间时,底层会给出报错罢了。反映到操作系统,就是 mem alloc 被拒绝了同时产生 OOM。

    把虚拟机的内存分配请求重新映射到物理内存中也是 hypervisor 的作用之一。

    我上面没把各个层说得很具体,是因为这里的“层”实在太多了,比如:

    系统通电之后,是内存控制芯片对内存相关信息进行检测(存在欺骗的可能);
    系统引导最初,是 BIOS 最先检测内存大小,在检测之前,BIOS 是运行于 ROM 的,并没有 RAM 给它用。所谓的检测,也就是“问一下”内存控制器而已(存在欺骗的可能+1 );
    引导之后,BIOS 会做一系列的预留与分配,以便把实模式的真实地址映射为操作系统可用的地址,同时保留一部分供硬件使用的区域(存在欺骗的可能+2 );
    操作系统引导之后,一般操作系统内核也会检测内存大小。检测方式为“问一句 BIOS ”(存在欺骗的可能+3 );
    执行 free 时,我记得 free 应该是从内核直接读取的内存大小,反映在 shell 中,就是 /proc 里的东西(存在欺骗的可能+4 );
    (希望有了解底层原理的人帮忙勘误)

    看见了吧。云厂商想超售,有无数种方法让你感觉不出来,根本不用明目张胆地用 512M 内存“骗”你。这么骗,简直就是欺负用户智商低下。

    我打这段话是对上面回复的同学们的回复。楼主你还是去问问客服吧。
        48
    zqfxch   43 天前
    楼主再仔细检查一下是否升级过吧,客服如果说升级过不会没有根据的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   890 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 21:09 · PVG 05:09 · LAX 14:09 · JFK 17:09
    ♥ Do have faith in what you're doing.