启动延迟错误?

启动延迟错误?

我在启动时不断收到这些消息:

[   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 来运行,因此您可以尝试禁用它。

相关内容