Get Mystery Box with random crypto!

Phonograph

电报频道的标志 ralphonograph — Phonograph P
电报频道的标志 ralphonograph — Phonograph
通道地址: @ralphonograph
类别: 技术 , 博客
语言: 中国
用户: 6
频道的描述

在馥郁的花田
我沉睡在杂草间
顺着萤火的河流
漂向无垠的星空

Ratings & Reviews

3.00

2 reviews

Reviews can be left only by registered users. All reviews are moderated by admins.

5 stars

0

4 stars

0

3 stars

2

2 stars

0

1 stars

0


最新信息 2

2022-06-14 22:01:59
https://github.com/RalXYZ/cc99 编译器也来了。 由于我们组没有 PL 人,所以只是选择了编译 C 语言,且依然有不少特性没有实现。还有一些容易实现的功能,比如自动类型推断之类,最终没有实现,也是因为精力有限,不能顾及所有方面。
62 viewsRalph 萌新喵, 19:01
打开/如何
2022-06-09 18:33:29
实操一下。
比如我在本地跑个 gentoo 容器,启动指令写上,强制把这个容器绑在两个核上。
然后我们到 /sys/fs/cgroup/cpuset.cpus 来查看一番,果然看到了预期的核数:2
298 viewsRalph 萌新喵, 15:33
打开/如何
2022-06-09 18:16:46
追进来看,不用看下文,光看 L48 - L50 其实就已经得出结论了,它的实现是和 cgroup 有关的。如果有熟悉容器化的朋友,这几行的路径应该是在工作中比较常见的。cgroup 的实现分不同的版本,且其目录结构也因配置项而异,在此不展开介绍。

回到正题,其实 JVM 只是读取了当前容器的 cgroup 配置信息,从而获取了资源相关信息。这其实是一种非常平凡的实现方式。

随便找了一篇介绍文章,质量说得过去,有兴趣的可以进行更深入的了解:
https://tech.meituan.com/2015/03/31/cgroups.html
324 viewsRalph 萌新喵, edited  15:16
打开/如何
2022-06-09 18:11:22
先来观察这个初始化函数。
从整个流程来看,JVM 默认 _is_containerized 是 false,直到中间的初始化流程都走完,JVM 才可以认为当前处于容器环境中。
怎么做到读容器被分配到资源的信息的?核心其实都在 L58
CgroupSubsystemFactory::create()
321 viewsRalph 萌新喵, 15:11
打开/如何
2022-06-09 18:04:04
我刚刚花了半个小时看 JVM 源代码,为了搞清楚 JVM 到底是如何判断它是否是跑在容器内的。 结论是,JVM 不会主动判断,而是用户说啥就是啥 用户传个参数,说 JVM 现在跑在容器里,JVM 就相信自己跑在容器里……… 我还以为有啥黑科技
334 viewsRalph 萌新喵, edited  15:04
打开/如何
2022-06-09 08:09:03 我刚刚花了半个小时看 JVM 源代码,为了搞清楚 JVM 到底是如何判断它是否是跑在容器内的。 结论是,JVM 不会主动判断,而是用户说啥就是啥 用户传个参数,说 JVM 现在跑在容器里,JVM 就相信自己跑在容器里……… 我还以为有啥黑科技
438 viewsRalph 萌新喵, edited  05:09
打开/如何
2022-06-09 07:56:53 我刚刚花了半个小时看 JVM 源代码,为了搞清楚 JVM 到底是如何判断它是否是跑在容器内的。
结论是,JVM 不会主动判断,而是用户说啥就是啥 用户传个参数,说 JVM 现在跑在容器里,JVM 就相信自己跑在容器里………
我还以为有啥黑科技
453 viewsRalph 萌新喵, edited  04:56
打开/如何
2022-06-08 07:42:05 为啥我 telegram 用户名写不了 了
341 viewsRalph 萌新喵, 04:42
打开/如何
2022-06-08 07:19:15 为啥我 telegram 用户名写不了 了
387 viewsRalph 萌新喵, 04:19
打开/如何
2022-06-07 20:25:33

423 viewsRalph 萌新喵, 17:25
打开/如何