我们正在运行负载测试并同时执行top命令并观察到Java进程(在根级别运行)消耗了204℅cpu,即使我们在服务器上只运行了10℅的预期负载。
我的一位同事也表示,Java进程不应该在根级别运行,因为这会导致性能问题。
我尝试搜索互联网,但找不到任何说Java进程不应该在根级别运行的内容。
专家注意事项: - 请原谅我缺乏知识,请不要下载或阻止这个问题。
top命令的屏幕截图:
答案 0 :(得分:0)
这是不正确的 - 以root身份运行进程不会影响性能,但可能会影响安全性。
之所以每个人都说不以root用户身份运行你的进程,除非绝对必要,因为root用户拥有整个磁盘的权限,以及许多其他东西:外部设备,硬件,进程等。
运行以root身份与世界交互的代码意味着如果任何人都可以在您的代码/项目/流程/中找到漏洞,那么可以造成的损害/伤害的数量可能超过可能的范围。非root用户。
答案 1 :(得分:0)
尝试运行以下命令以查找树结构中的所有进程。
ps -e -o pid,args --forest
从输出中,您将能够找出那些在根级别运行的java进程或其他进程是其子级。对于前者有时在测试一些脚本时,我们自己用sudo触发这些脚本,这可能反过来启动java实例。