Ma hope o ʻewalu mahina o ka hoʻomohala ʻana hoʻokuʻu kaʻina hana hope , nāna e nānā pinepine i ka nui o ka hoʻomanaʻo i loaʻa (MemAvailable, SwapFree) a hoʻāʻo e pane koke i ke kaomi hoʻomanaʻo. Ua kākau ʻia ke code papahana ma C a ma lalo o ka laikini MIT.
Inā emi ka nui o ka hoʻomanaʻo i loaʻa ma mua o ka waiwai i ʻōlelo ʻia, a laila e hoʻopau ikaika ʻo earlyoom (ma ka hoʻouna ʻana iā SIGTERM a i ʻole SIGKILL) i ke kaʻina hana e hoʻopau i ka hoʻomanaʻo me ka ikaika loa (loaʻa ka waiwai kiʻekiʻe /proc/*/oom_score), me ka lawe ʻole ʻana i ke kūlana ʻōnaehana. i ka hoʻomaʻemaʻe ʻana i nā ʻōnaehana pale a me ka hoʻopili ʻana i ka hoʻololi ʻana i ka hana (ʻo ka mea lawelawe OOM (Out Of Memory) i loko o ka kernel i hoʻomaka ʻia i ka wā i loaʻa ai ke kūlana waho o ka hoʻomanaʻo i nā waiwai koʻikoʻi a maʻamau i kēia manawa ʻaʻole pane hou ka ʻōnaehana. i nā hana hoʻohana).
Kākoʻo ʻo Earlyoom i ka hoʻouna ʻana i nā leka hoʻomaopopo o nā kaʻina hana i hoʻopau ʻia i ka pākaukau (me ka hoʻohana ʻana i ka notify-send), a hāʻawi pū i ka hiki ke wehewehe i nā lula e hiki ai iā ʻoe ke kuhikuhi i nā inoa o nā kaʻina hana i makemake ʻia e hoʻopau ʻia (koho "- -makemake") a i ʻole hoʻōki ʻia e pale ʻia (koho "--avoid").
ka papa kuhikuhiE i ka hoʻokuʻu hou:
- Ma ke kumukūʻai o Ua hoʻolalelale ʻia ka logic o nā ʻano hana no ke koho ʻana i nā kaʻina hana no ka hoʻopau ʻana e 50%;
- Ua hōʻike ʻia ka UID o ke kaʻina hana i hoʻopau ʻia i loko o ka log, me ka PID a me ka inoa o ke kaʻina hana;
- Ua hoʻohui ʻia ka hōʻike ʻana o ka debug log i ka hina māmā;
- Hoʻomaʻemaʻe i ke code;
- Ma kahi e hiki ai, hoʻohana ʻia nā hoʻolaha loli kūloko no nā poloka;
- Ua hoʻohui ʻia ka hoʻonohonoho PATH_LEN e pani i ka waiwai nui buffer paʻakikī;
- Ua hōʻoia ʻia ua hoʻomaka ʻia ka cppcheck inā loaʻa;
- Ua hoʻohui ʻia ka hoʻāʻo hana "make bench";
- Ua hoʻonui ʻia ka hoʻonohonoho o nā hoʻāʻo (make test);
- Ua hoʻokō ʻia ka hoʻonohonoho hou ʻana o ke kuleana aʻa i loko o ka faila ʻāpana systemd earyoom.service. ʻO kēia hoʻololi Nā leka hoʻomaopopo GUI. No ka hoʻā ʻana i nā leka hoʻomaopopo GUI, ua ʻōlelo ʻia e hoʻihoʻi i nā kuleana kumu ma ka wehe ʻana i ka "DynamicUser=true." Ke hoʻopau nei i nā kuleana kumu pū kekahi i ka hiki ʻole ke loaʻa ka ʻike e pili ana i ka hoʻohana ʻana i ka hoʻomanaʻo i ka wā e kau ai /proc i ke ʻano hidepid=1 a i ʻole hidepid=2.
Source: opennet.ru
