在生产服务器上运行我自己的 Java 代码的风险

在生产服务器上运行我自己的 Java 代码的风险

我在一家电信公司担任运营工程师,负责几台服务器,我的主要任务是对这些服务器进行“每日健康检查”,其中一部分是将一些值与之前的值进行比较,我正在考虑绘制数据的不同选项,我需要你的帮助来评估在这些服务器上运行我自己的小型 Java 程序的风险,因为我远不是最好的开发人员,例如,如果我以某种方式启动一个无限循环或者我没有释放我分配的资源。

提前致谢。

答案1

您的 Java 程序不太可能损坏服务器,除非它被编写来执行一些会损坏服务器的操作。

JVM 在启动时会分配一个连续的内存块,称为堆空间。您可以使用参数来控制堆的最小和最大大小;我忘记了默认值是多少,但它们不是很大。如果用完了堆,您的 Java 程序将崩溃或运行非常糟糕,但其他一切都不会受到影响。如果没有足够的内存供堆启动,您的 JVM 可能无法启动(这是一个依赖于平台的实现问题)。您不能在 Java 中直接“释放您分配的资源”,但这与您不这样做时的情况最接近。

JVM 在执行代码时可能会占用 100% 的服务器 CPU。如果您放入一个不执行任何有用操作的无限循环,则可能会占用该机器上的所有 CPU。这可能对您的服务器不利,因此请尽量不要这样做。

您打算做并发吗?启动任何单独的线程?使用 JNI 调用任何本机库?执行独立进程?这些都可能导致可怕的崩溃,如果您做错了,很难找出原因。由于您对自己的能力没有信心,我现在就告诉您,如果您正在考虑的任何内容涉及其中任何一项,就不要继续这个计划。

除此之外,只要您确定没有其他人能够任意执行此程序(例如,启动十几个实例来使您的服务器崩溃),风险就应该很低。这是一个很大的假设,因此 spy out 应该绝对确保它在这里适用。

相关内容