跳到主要内容

你在一台机器上共享什么

切片并不总是一整台机器。当你在一台双卡主机上租下一份 1× 报价时,另一张卡可能同时被别人租走——所以值得弄清楚界线到底划在哪里。

只属于你​

资源如何得到保证
GPU一张 GPU 同一时间只分配给一个实例,绝不会被两个租户分割。容器是按硬件 ID 而不是按序号拿到它那几张卡的,因此它既看不到也无法寻址其他卡。
你的文件系统另一位租户无法读取或写入你实例的磁盘。
你的进程容器彼此独立,不共享进程命名空间。你运行的任何东西对同机租户都不可见,反之亦然。从代理 0.1.12 起,一个实例每块 GPU 最多可以运行 16,384 个进程和线程,所以一个实例里失控的 fork 不会耗尽整台机器、殃及其他实例。
你的专属网络你的实例会拿到属于它自己的容器网络。同一台机器上的同机租户没有任何路由能到达它——他们够不到你没有发布的端口;而你确实发布了的端口,别人访问它的方式和你访问它的方式是同一条:经由这台机器的地址或连接 URL,并且要过该服务所要求的那道认证。

与机器共享​

资源这对你意味着什么
磁盘容量报价卡片上的存储数字是这台机器的磁盘总量,也就是你能挂载的上限——它不是一份私有配额。你在部署时自行选择大小,并按 GB 每小时计费。你选定的大小会被许诺给你:我们不会把一台机器的磁盘超卖,所以当机器的磁盘已被许诺出去时,部署会以 MACHINE_DISK_EXHAUSTED 被拒绝。
CPU从主机代理 0.1.12 起按实例限制,机器会在更新时获得这一版本:实例按其 GPU 数量所占的比例分到机器的核心——四卡机器上的 1× 切片分到四分之一。在仍运行旧版代理的机器上没有任何限制,所以繁忙的邻居可能拖慢你的实例。
内存从代理 0.1.12 起以同样方式限制:实例在机器为自己保留的部分(4 GB 与 10 % 中较大者)之外,按 GPU 份额分到内存,它的 /dev/shm 也包含在其中。这样内存用尽的邻居只会撞上自己的上限。在仍运行旧版代理的机器上,耗尽整台机器内存的邻居,也可能导致你实例里的进程被杀掉。
网络带宽主机的上行链路是共享的。卡片上的数字是机器的链路速率,而不是为你预留的份额。这只关乎吞吐量——共享上行链路并不会把任何人放进你的网络里。
主机的在线时长如果机器掉线,它上面的每一个实例都会受影响。这正是主机可靠性百分比所衡量的,也是它出现在卡片上的原因。
磁盘是需要提前规划的那一项

你实例的磁盘是私有的——别人既读不了也写不了——而且底下的容量确实被记账了:一台机器不可能被卖出超过它物理容量的磁盘,所以已经许诺给你的空间不会再卖给同机租户。这份记账发生在购买那一刻。

它是否在运行时也被强制执行,取决于机器。报价卡片上会写明:

  • · 有保障 — 主机的文件系统支持按实例配额,同机租户写到自己的上限就会停下。你的空间是真正属于你的。
  • · 共享 — 记账依然成立,但运行中的机器内部没有硬性上限,所以一个远远超出其购买量写入的同机租户,仍可能把卷写满,让你写不进去。

在主机们迁移文件系统的这段时间里,大多数机器仍是共享。无论哪种情况,请把检查点存到某个持久的地方,而不要指望实例的磁盘一直都在。

如何判断你是否独占一台机器​

报价卡片上的可用数字告诉你的是这台机器的形态,而不是谁在上面。显示 1 of 2 意味着这台机器能提供两份该形态、其中一份已被占用——所以如果你租下它,你会有一位同机租户。

显示 2 of 2 意味着这台机器此刻是空闲的。但这并不意味着它会一直空着:另一张卡可能一分钟后就被别人租走。

如果你需要独占一台机器,就租下它发布的最大形态。在双卡主机上拿下 2× 之后就没有别的可卖了,因此没有人能再落到这台机器上。

相关​