我在 CentOS 6.5 上运行 elasticsearch 和 SugarCRM7。我每天都面临同样的问题:java outOfMemory 错误。发生这种情况是因为 vm.max_map_count 值很小,只有在推荐 262144 时才 65530。
问题是 vm.max_map_count 似乎无法改变:
在根下更改
sudo sysctl -w vm.max_map_count=262144
Run Code Online (Sandbox Code Playgroud)
返回
错误:对键“vm.max_map_count”的权限被拒绝
尽管
ps aux | grep java
Run Code Online (Sandbox Code Playgroud)
仅返回 grep 进程
在 elasticsearch 启动时更改
sudo service elasticsearch start
Run Code Online (Sandbox Code Playgroud)
也返回错误
错误:对键“vm.max_map_count”的权限被拒绝
启动弹性搜索:[确定]
通过文件手动更改(dirty-dirty hack):
sudo vi /proc/sys/vm/max_map_count
Run Code Online (Sandbox Code Playgroud)
也不起作用:
"/proc/sys/vm/max_map_count" [只读] 1L, 6C
-- INSERT -- W10:警告:更改只读文件
E45: 'readonly' 选项已设置(添加 ! 以覆盖)
"/proc/sys/vm/max_map_count" E212: 无法打开文件进行写入
尽管
ls -la /proc/sys/vm/ | grep max_map_count
Run Code Online (Sandbox Code Playgroud)
退货
-rw-r--r-- 1 根根 0 Apr …
我在一台机器上有一个密钥库(位于 /root/.keystore),我想将它移动到同一位置的另一台机器上。目前,第二台机器在 /root/.keystore 没有密钥库,有没有办法导出然后创建/导入?还是我需要先创建一个空的?
我们有一个小型 Java 应用程序,它使用一些 Camel 路由从网络服务器获取上传的文件,处理它们并发送一些带有结果的电子邮件。
运行此应用程序的服务器已停用。现在我们必须在动力不足的硬件上运行它,因为我无法说服管理员在网络服务器(实际上是一个多用途服务器)上安装 JRE。
我自己是一名 Java 应用程序工程师,我以编写 JEE 代码为生,处理每周价值数万欧元的 B2B 交易。但是我在找到驳斥 java 本身不安全的神话的可靠来源时遇到了问题。
管理员反对安装 JRE 的两个主要论点:
当涉及到占用内存的 Java 应用程序时。嗯...我想说我们必须为 Xmx 设置适当的值。完毕。
现在有很多消息来源在谈论 Java 的许多漏洞。这些来源主要针对运行来自美国雷德蒙德公司的特定操作系统的最终用户。AFAIK 对于配置为自动执行所有小程序的 Java 浏览器插件的未打补丁版本来说可能是真的,很有可能成为驱动感染的受害者。就像在上下班途中与火车上的每个人进行无保护性行为一样有感染性病的风险。
但是我在全球互联网上找不到任何人谈论服务器应用程序或无头运行的 JRE。那完全是另一回事。
或者我在这里遗漏了什么?
[edit 2014-08-28] 澄清:我只关心服务器上的 Java。我不关心 Java 插件和/或用 Java 开发的特定软件的问题。
我在 java 进程和 nrpe 检查方面遇到了一些问题。我们有一些进程有时会在 32 核系统上使用 1000% 的 CPU。系统非常敏感,直到您执行
ps aux
Run Code Online (Sandbox Code Playgroud)
或者尝试在 /proc/pid# 中做任何事情,比如
[root@flume07.domain.com /proc/18679]# ls
hangs..
Run Code Online (Sandbox Code Playgroud)
一串ps
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2819, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2819, ...}) = 0
stat("/dev/pts1", 0x7fffb8526f00) = -1 ENOENT (No such file or directory)
stat("/dev/pts", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
readlink("/proc/15693/fd/2", "/dev/pts/1", 127) = 10
stat("/dev/pts/1", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
write(1, "root 15693 15692 0 06:25 pt"..., 55root 15693 15692 0 06:25 pts/1 00:00:00 ps -Af
) = 55
stat("/proc/18679", …Run Code Online (Sandbox Code Playgroud) 所以今天早上我注意到我的网站关闭了,打开我的服务器,看到网络服务器已经停止。
当我尝试再次启动时,出现此错误
start -Dhttp.port=80 -Dapplication.secret=**********
[info] Wrote /home/Jakob/Apps/Botlanegg/target/scala-2.11/botlanegg_2.11-1.0.pom
(Starting server. Type Ctrl+D to exit logs, the server will remain in background)
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000d5550000, 715849728, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 715849728 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/Jakob/Apps/Botlanegg/hs_err_pid3892.log
Run Code Online (Sandbox Code Playgroud)
令我困惑的是,昨天网络服务器运行没有问题,今天早上突然停机?Debian 7.8 在服务器上运行。
cat …
我正在管理几个 tomcat 实例(大约 30-35 个)并寻找一些控制台来集中日志。我之前尝试过 php-syslog-ng(没有使用 tomcat),发现它很有用。我希望这些软件具有以下一些功能:
- 根据异常的严重性高亮语法。- 堆栈跟踪和嵌套异常的树视图。
加分点:
- 当某些模式匹配时报警。
我有一个永远运行的 jar(带有套接字侦听线程的无限循环)并且需要它始终在后台运行。一个例子是:“java -jar test.jar”我该怎么做?提前致谢!
我想创建推送通知服务器,在服务器中安装 SSL 证书和 .p12 文件时,我们面临以下错误:我想知道 ssl 证书有什么问题,因为我收到了 certificate_unknown 错误。
main, RECV TLSv1 ALERT: fatal, certificate_unknown
main, called closeSocket()
main, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
Error pushing notification(s):
Invalid certificate chain (Received fatal alert: certificate_unknown)! Verify that the keystore you provided was produced according to specs...
at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:359)
at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:301)
at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:258)
at javapns.Push.payload(Push.java:122)
at javapns.Push.alert(Push.java:36)
at com.applicationname.pns.PushNotification.main(PushNotification.java:31)
Run Code Online (Sandbox Code Playgroud)
//源代码
/**
*
*/
package com.applicationname.pns;
import org.json.JSONException;
import javapns.Push;
import javapns.devices.Device;
import javapns.notification.Payload;
import javapns.notification.PushNotificationManager;
import javapns.notification.PushNotificationPayload;
public class PushNotification …Run Code Online (Sandbox Code Playgroud) 许多 SSL 客户端,尤其是 JDK 6,使用 SSLv2Hello 协议与服务器握手。使用此协议并不能意味着你正在使用SSL 2.0或3.0为此事; 确定使用哪个协议只是一个握手。[ http://tools.ietf.org/html/rfc5246#appendix-E.2]
但是,在 Apache 中,如果禁用 SSLv3 支持,这显然会删除对 SSLv2Hello 协议的支持。Apache Tomcat 明确支持 SSLv2Hello;也就是说,您可以启用它,但不能启用 SSLv3。
有没有办法在 Apache 中做到这一点?
[更新]
这是我的协议配置:
SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv3
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 Java SDK 8 工具(从 debian backports 存储库安装)设置为默认值。
# update-java-alternatives --list
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
# update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64
update-alternatives: error: no alternatives for mozilla-javaplugin.so
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
Run Code Online (Sandbox Code Playgroud)
嗯,除了那个错误(我认为这只是根据https://askubuntu.com/questions/141791/is-there-a-way-to-update-all-java-related-替代方案。如果没有,我不知道如何解决这个问题,因为我可以看到 jdk8 没有 icedtea 插件),这应该可以解决问题,对吧?
但是很多 Java 工具仍然指向 Java 7:
# update-alternatives --get-selections | grep java
appletviewer manual /usr/lib/jvm/java-8-openjdk-amd64/bin/appletviewer
extcheck auto /usr/lib/jvm/java-7-openjdk-amd64/bin/extcheck
idlj auto /usr/lib/jvm/java-7-openjdk-amd64/bin/idlj
jar auto /usr/lib/jvm/java-7-openjdk-amd64/bin/jar
jarsigner auto /usr/lib/jvm/java-7-openjdk-amd64/bin/jarsigner
java manual /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
javac auto /usr/lib/jvm/java-7-openjdk-amd64/bin/javac
javadoc auto /usr/lib/jvm/java-7-openjdk-amd64/bin/javadoc
...
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?破碎的?
编辑:
解决了这个问题: …