เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ„เบงเบฒเบกเบˆเบณเบ™เบญเบเบฅเบฐเบšเบปเบš Earoom 1.4

เบซเบผเบฑเบ‡เบˆเบฒเบเปเบ›เบ”เป€เบ”เบทเบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ เบˆเบฑเบ”เบžเบตเบกเบกเบฒ เบเบฒเบ™เบ›เปˆเบญเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™ เบšเบนเบฅเบดเบกเบฐเบชเบดเบ” 1.4, ะบะพั‚ะพั€ั‹ะน ะฟะตั€ะธะพะดะธั‡ะตัะบะธ ะฟั€ะพะฒะตั€ัะตั‚ ะพะฑัŠะตะผ ะดะพัั‚ัƒะฟะฝะพะน ะฟะฐะผัั‚ะธ (MemAvailable, SwapFree) ะธ ะฟั‹ั‚ะฐะตั‚ัั ะฝะฐ ั€ะฐะฝะฝะตะน ัั‚ะฐะดะธะธ ะพั‚ั€ะตะฐะณะธั€ะพะฒะฐั‚ัŒ ะฝะฐ ะฒะพะทะฝะธะบะฝะพะฒะตะฝะธั ะฝะตั…ะฒะฐั‚ะบะธ ะฟะฐะผัั‚ะธ. ะšะพะด ะฟั€ะพะตะบั‚ะฐ ะฝะฐะฟะธัะฐะฝ ะฝะฐ ัะทั‹ะบะต ะกะธ ะธ เปเบˆเบเบขเบฒเบเป‚เบ”เบ ะฟะพะด ะปะธั†ะตะฝะทะธะน MIT.

เบ–เป‰เบฒเบˆเปเบฒเบ™เบงเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบกเปˆเบ™เบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบ„เปˆเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰, เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบˆเบฐเบšเบฑเบ‡เบ„เบฑเบš (เป‚เบ”เบเบเบฒเบ™เบชเบปเปˆเบ‡ SIGTERM เบซเบผเบท SIGKILL) เป€เบžเบทเปˆเบญเบขเบธเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบšเปเบฅเบดเป‚เบžเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ” (เบกเบต /proc/*/oom_score), เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบšเบปเบš. เบชเบฐเบ–เบฒเบ™เบฐเป€เบžเบทเปˆเบญเบฅเบถเบšเบฅเป‰เบฒเบ‡ buffers เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเปเบฅเบฐเปเบŠเบเปเบŠเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ swapping (เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ OOM (Out Of Memory) เปƒเบ™ kernel เบˆเบฐเบ–เบทเบเบเบฐเบ•เบธเป‰เบ™เป€เบกเบทเปˆเบญเบชเบฐเบ–เบฒเบ™เบฐเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ•เปˆเปเบฒเป„เบ”เป‰เบšเบฑเบ™เบฅเบธเบ„เปˆเบฒเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบฅเป‰เบงเปเบฅเบฐเป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเปƒเบ™เบˆเบธเบ”เบ™เบตเป‰เบฅเบฐเบšเบปเบšเบˆเบฐเบšเปเปˆเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ•เปเปˆเบเบฒเบ™เบเบฐเบ—เปเบฒเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบญเบตเบเบ•เปเปˆเป„เบ›) .

Earlyoom เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบ–เบทเบเบเบปเบเป€เบฅเบตเบเป‚เบ”เบเบšเบฑเบ‡เป€เบญเบตเบ™เป„เบ›เบเบฑเบ‡ desktop (เป‚เบ”เบเบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เบชเบปเปˆเบ‡), เปเบฅเบฐเบเบฑเบ‡เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบš, เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเป€เบงเบปเป‰เบฒเปเบšเบšเบ›เบปเบเบเบฐเบ•เบด, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบŠเบทเปˆเบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบเบปเบเป€เบฅเบตเบ ("- -preferโ€ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบ) เบซเบผเบทโ€‹เบขเบธเบ”โ€‹เบ„เบงเบ™โ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบซเบผเบตเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบเบฒเบ™ (เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบ โ€œโ€”เบซเบผเบตเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบเบฒเบ™โ€).

เบ•เบปเป‰เบ™โ€‹เบ•เป เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบญเบญเบโ€‹เปƒเบซเบกเปˆโ€‹:

  • เบเบงเบ”เป€เบšเบดเปˆเบ‡เบกเบฑเบ™เบญเบญเบ เบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบตเป‰เบเบฝเบ” ะฐั‚ั€ะธะฑัƒั‚ะพะฒ ะฟั€ะพั†ะตััะพะฒ ะฝะฐ 50% ัƒัะบะพั€ะตะฝะฐ ะปะพะณะธะบะฐ ะฒั‹ะฑะพั€ะฐ ะฟั€ะพั†ะตััะพะฒ ะดะปั ะทะฐะฒะตั€ัˆะตะฝะธั;
  • ะžะฑะตัะฟะตั‡ะตะฝะพ ะพั‚ั€ะฐะถะตะฝะธะต ะฒ ะปะพะณะต UID ะทะฐะฒะตั€ัˆะฐะตะผะพะณะพ ะฟั€ะพั†ะตััะฐ, ะฒ ะดะพะฟะพะปะฝะตะฝะธะต ะบ PID ะธ ะธะผะตะฝะธ ะฟั€ะพั†ะตััะฐ;
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดัะฒะตั‚ะบะฐ ะพั‚ะปะฐะดะพั‡ะฝะพะณะพ ะปะพะณะฐ ัะฒะตั‚ะปะพ ัะตั€ั‹ะผ ั†ะฒะตั‚ะพะผ;
  • เบฅเบฐเบซเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบญเบฐเบ™เบฒเป„เบก;
  • ะŸะพ ะฒะพะทะผะพะถะฝะพัั‚ะธ ะธัะฟะพะปัŒะทะพะฒะฐะฝะพ ะพะฑัŠัะฒะปะตะฝะธะต ะปะพะบะฐะปัŒะฝั‹ั… ะดะปั ะฑะปะพะบะพะฒ ะฟะตั€ะตะผะตะฝะฝั‹ั…;
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฝะฐัั‚ั€ะพะนะบะฐ PATH_LEN ะดะปั ะทะฐะผะตะฝั‹ ะฒัˆะธั‚ะพะณะพ ะฒ ะบะพะด ะทะฝะฐั‡ะตะฝะธั ั€ะฐะทะผะตั€ะฐ ะฑัƒั„ะตั€ะฐ;
  • ะžะฑะตัะฟะตั‡ะตะฝ ะทะฐะฟัƒัะบ cppcheck ะฟั€ะธ ะตะณะพ ะฝะฐะปะธั‡ะธะธ;
  • ะ”ะพะฑะฐะฒะปะตะฝ ั‚ะตัั‚ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ ยซmake benchยป;
  • ะ ะฐััˆะธั€ะตะฝ ะฝะฐะฑะพั€ ั‚ะตัั‚ะพะฒ (make test);
  • ะ ะตะฐะปะธะทะพะฒะฐะฝ ัะฑั€ะพั ะฟั€ะธะฒะธะปะตะณะธะน root ะฒ unit-ั„ะฐะนะปะต systemd earlyoom.service. ะญั‚ะพ ะธะทะผะตะฝะตะฝะธะต เบžเบฑเบเบœเปˆเบญเบ™ ะฒะพะทะผะพะถะฝะพัั‚ัŒ GUI ัƒะฒะตะดะพะผะปะตะฝะธะน. ะ”ะปั ะฒะบะปัŽั‡ะตะฝะธั GUI ัƒะฒะตะดะพะผะปะตะฝะธะน ะฟั€ะตะดะปะฐะณะฐะตั‚ัั ะฒะตั€ะฝัƒั‚ัŒ root ะฟั€ะฐะฒะฐ, ั€ะฐัะบะพะผะผะตะฝั‚ะธั€ะพะฒะฐะฒ ยซDynamicUser=trueยป. ะžั‚ะบะปัŽั‡ะตะฝะธะต root ั‚ะฐะบะถะต เบ›เบฐเป€เบžเบ” ะบ ะฝะตะฒะพะทะผะพะถะฝะพัั‚ะธ ะฟะพะปัƒั‡ะตะฝะธั ัะฒะตะดะตะฝะธะน ะพ ะฟะพั‚ั€ะตะฑะปะตะฝะธะธ ะฟะฐะผัั‚ะธ ะฟั€ะธ ะผะพะฝั‚ะธั€ะพะฒะฐะฝะธะธ /proc ะฒ ั€ะตะถะธะผะต hidepid=1 ะธะปะธ hidepid=2.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™