V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  crsmk01  ›  全部回复第 2 页 / 共 3 页
回复总数  43
1  2  3  
LZ 发的问题现象、排查步骤以及 github 中的引文,说是是个 bug ,感觉有点牵强附会。

IOException:打开的文件过多,对应的英文应该是:Too many open files ,那应该查这个 Java 进程打开的文件描述符数和内容。

在 Linux&Unix 操作系统下运行 Java 程序,如果用 root 用户运行,默认只有操作系统层面的限制,root 用户本身没限制,如果是普通用户,那么受普通用户下执行 ulimit -Hn ( ulimit -n 显示的是 soft limit ,而 Java 应用程序需要看 hard limit )数值的影响。在一些 Linux 操作系统下,一个普通用户打开的文件描述符默认是 1024 ,这个数值太小了,调大成 65535 或者稍微更大的值并没有问题(本来默认值就有点小,需要优化)。
Linux 操作系统下,单进程可打开的文件描述符限制优先级:soft limit < hard limit < kernel (NR_OPEN => /proc/sys/fs/nr_open)

如果 Java 程序运行在普通用户下,ulimit -Hn 参数值也优化过了,还是报 Too many open files ,那得看看这个 Java 进程到底是因为打开了啥导致的异常,具体看:ls -l /proc/<Java 进程 pid>/fd | more (内容会有点多),看看是文件,还是 established or close_wait 状态的 TCP 连接占用的多,根据看看到的异常输出结果,再去查资料也不迟。

如果那个 Java 进程打开的文件描述符数处结果( ls -l /proc/<Java 进程 pid>/fd | more )也都正常,那就看看是不是操作系统层面所有用户、所有进程打开的文件描述符数是不是超过了操作系统最大允许打开的文件描述符数上限(/proc/sys/fs/file-nr )。
287 天前
回复了 odirus 创建的主题 Kubernetes Mac(M2 芯片)快速安装 K8S
podman + kind
orbstack 后续要收费
306 天前
回复了 wxd21020 创建的主题 Java Linux 内存使用率缓慢增长原因排查
1 、上面说分析 dump 文件的同学都没审题,LZ 说了是 java.lang.OutOfMemoryError: Unable to create new native thread ,而且 LZ 像是做主机运维的 ?不要只盯着服务器内存,可能有误导性;
2 、可以看下 https://www.cnblogs.com/rexcheny/p/9502248.html 这篇文章;
3 、昨晚一个客户遇到了一个几乎一样的问题,还没完全排查完,但看第 2 点的文章就比较有用。
LZ Project 的 Dockerfile 里面有 CPU 密集型任务(编译等) ?我之前也遇到过,如果用 QEMU 模拟器,在 macOS M1 芯片的主机上用 docker buildx build --platform linux/arm64,linux/amd64 ... 构建双架构镜像时,2 分钟+ 的构建任务,时间拉长到 20 分钟+ ,后来把 linux/amd64 镜像的构建单独找了一台 x86-64 架构的主机去构建,速度嗖嗖的提升。

不过这还不够,还可以通过交叉编译,构建速度有 100 倍的提升。
https://medium.com/@tonistiigi/faster-multi-platform-builds-dockerfile-cross-compilation-guide-part-1-ec087c719eaf
312 天前
回复了 tianhei826 创建的主题 程序员 淘宝的同学来认领一下这个 bug
@tianhei826 举手之劳,客气了。还有一位同事也转了你的帖子到内网,看着有 Bug 不处理掉难受。
313 天前
回复了 tianhei826 创建的主题 程序员 淘宝的同学来认领一下这个 bug
帮你转阿里内网了,让天猫的同学帮忙处理一下。
313 天前
回复了 zetaochen 创建的主题 程序员 求推荐个实用的密码管理器
MacPass
A free, open-source, KeePass-compatible password manager for macOS.
314 天前
回复了 wxd21020 创建的主题 Java Linux 内存使用率缓慢增长原因排查
另外,这些微服务应用用的什么系统用户( root or 普通用户)在跑的 ?有没有监控过操作系统整理的文件描述符、总线程数?
/proc/sys/fs/file-nr
/proc/sys/kernel/pid_max
/proc/sys/kernel/threads-max (结合所有 /proc/<pid>/status | grep -i Threads 总和看下)
314 天前
回复了 wxd21020 创建的主题 Java Linux 内存使用率缓慢增长原因排查
贴下 os 版本、jvm 版本、相关的内存参数(堆、栈、Directory Memory 、Code Cache 等)
1 、是不是在用 docker / k8s 在运行这些微服务应用 ?如果是,贴下 docker 分配的内存 or 微服务 pod 的 request / limit mem
2 、如果只是一个主机直接跑 java 进程,可以观察一下出问题的时候 sys cpu 是否很高,挑占用内存较高的前三个进程,用 pmap -xp <jvm_pid> 看下结果
搜了一下 Zulu 的版本也挺多,ARM 版、Alpine Linux 版等也都有。
Oracle JDK8u211+ 版本都是 OTN License 了,花钱购买才能用于生产环境。最多只能用 Oracle JDK 8u202- 的版本( BCL License )
而且而且开发、生产环境用的 JDK 版本最好一致不是 ?

如果想考虑 ARM 版,可以考虑 Liberica JDK https://bell-sw.com/pages/downloads
Liberica JDK 的版本特别多,ARM 版、Alpine Linux 版等...
Keychron +1
我之前在小厂待过,感觉 PD 很专业,基本功就不说了,很扎实,还懂技术细节,又懂行业发展趋势...
到了大厂之后,MD ,啥玩意儿啊,只会传话的 PD 遍地都是,有时候原型图都不画,就给个页面,可以抄... 无效的电话会议没少打,遇到事儿躲的远远的,产品稍微做出来点儿啥,到处宣传,感觉都是他做的...
不能同时交,想当年我户口还在老家,我妈主动给我交,工作人员查到已经在外省交过了,不让交。
阿里达摩院就有,大型会议就在用。
2023-05-12 10:07:29 +08:00
回复了 zuston 创建的主题 Apple Mac + Docker 占据太多本地存储
为啥不用 CI 平台去完成 ?
2023-05-10 13:32:20 +08:00
回复了 vituralfuture 创建的主题 Python [吐槽] conda 真是太难用了! 如何优雅地管理 Python 环境?
miniconda
12345 管不了警察,直接 12389 公安督察电话,市里不行就往当地省公安厅反馈,都是这一个电话。
2023-04-25 09:57:26 +08:00
回复了 dong706 创建的主题 Kubernetes k8s 单 pod 的性能压测发现的奇怪现象
这个结果有失偏颇,要限制一下 jvm 堆内存那些参数,pod 的 request 、limit cpu/mem 也限制一下,再去测试验证。
2023-04-24 17:56:44 +08:00
回复了 Tounea 创建的主题 云计算 企业私有云该选择那种解决方案?
没运维团队,可以考虑公共云,不要感觉公共云 = 不安全
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1205 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 45ms · UTC 18:18 · PVG 02:18 · LAX 11:18 · JFK 14:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.