我在启动时不断收到这些消息:
[ 17.806441] EXT4-fs (sda1): re-mounted. Opts: (null)
[ 157.196550]
postgres (1297): /proc/1297/oom_adj is deprecated, please use
/proc/1297/oom_score_adj instead.
从时差可以看出,这是一个巨大的延迟!我该如何解决这个问题?这种情况发生在我构建的每个版本上(跨越 30-40 个硬盘),所以我不认为这是硬盘问题,尽管它们都是一个主版本的直接副本。
这是启动延迟吗?我如何解决它?任何见解都会有所帮助。
我的上级认为没有足够的证据表明这就是启动时间如此长的原因。如果不是这个(dmesg 打印出来),那么它会是什么?
笔记:
版本 = Linaro 13.08 (GNU/Linux 3.15.0+ armv7l)
答案1
发现问题了,通过使用应用程序bootchart形成了所有启动进程的图表,发现其中有一个长达2分钟的睡眠进程!
这个 2 分钟的睡眠是在 /etc/init/failsafe.conf 中发现的 <- 这个延迟是为了回显到终端,尽管它没有。通过修改脚本,我成功地在 23 秒内启动了系统。虽然其他问题也随之而来,但并不是我无法轻松解决/破解的任何问题。
其他问题是 DHCP 服务器在广播 SSID 时不会出现,它只会失败。
我将一个脚本与 @reboot 一起放入 crontab -e 中,该脚本循环检查服务是否正在运行,如果没有运行,它将启动它并继续尝试直到启动。
答案2
现在可以忽略 postgresql 消息,但如果你想修复它,你应该更改 Postgresql 的 init 脚本。查看您的初始化脚本 ( /etc/init.d/postgresql
) 中是否有类似以下内容的内容:
test x"$PG_OOM_ADJ" != x && echo "$PG_OOM_ADJ" > /proc/self/oom_adj
并将其更改为
test x"$PG_OOM_ADJ" != x && echo "$PG_OOM_ADJ" > /proc/self/oom_adj_score
也有可能您不需要 postgresql 来运行,因此您可以尝试禁用它。