Skip to content

我做运维的故事

迁移服务器

时遇到的各种问题

127.0.0.1 vs 0.0.0.0

curl: 56 Recv failure: 连接被对方重设 解决:docker容器内可以访问web应用,端口映射到宿主机却无法访问,错误代码:curl: 56 Recv failure: 连接被对方重设_curl: (56) recv failure: 连接被对方重设-CSDN博客 至于我,也是先确认了容器内部,宿主机上 0.0.0.0 和 localhost 都可以访问…试着试着,访问127.0.0.1 就也正常了=.=

es 内存占用

问题:人家发现我装的 elasticsearch 占用内存过高,给图 ![[Pasted image 20240126152414.png]] 原因:看到 Command 里,使用的是 elasticsearch 自带的 jdk(后来发现是超级新的 jdk 21 版,不知道为啥贼慢)。然后要如何开始 debug 呢? - es 是通过啥启动的?systemctl - systemctl xx 启动的到底是哪里的 bin?这个我其实不知道 - 按照 service 配置文件来。systemctl cat xx 可以查看配置文件的位置。 - 所以我终于找到了 elasticsearch.service,找到了它的入口文件 ExecStart=/usr/share/elasticsearch/bin/systemd-entrypoint -p ${PID_DIR}/elast - 然后前往 systemd-entrypoint,找到主要的执行文件 - 确定执行文件里启动 java 时读了 $JAVA_HOME, 遇到了奇怪的事,于是我略略调试一下 - 直接启动执行文件: $JAVA_HOME 确实是系统上装的 java 环境变量 - 通过 systemctl 启动:$JAVA_HOME 是 elasticsearch 复写的 - 那为什么通过 systemctl 启动时,读不到系统的 $JAVA_HOME 变量呢 - 确认系统的 $JAVA_HOME 写入方式:/etc/profile - 搜索,发现 systemctl 启动确实是读不到的!要在 service 配置里通过 Environment 或者 EnviromentFile 的方式来设置~