Atmiņas apdarinātāja agrīna izlaišana 1.4

Pēc astoņu mēnešu attīstības publicēta fona procesa izlaišana agrīnā telpa 1.4, kas periodiski pārbauda pieejamās atmiņas apjomu (MemAvailable, SwapFree) un mēģina savlaicīgi reaģēt uz nepietiekamu atmiņu. Projekta kods ir uzrakstīts C valodā un izplata saskaņā ar MIT licencēm.

Ja pieejamās atmiņas apjoms ir mazāks par norādīto vērtību, earlyoom piespiedu kārtā (nosūtot SIGTERM vai SIGKILL) pārtrauks procesu, kas visaktīvāk patērē atmiņu (kuram ir visaugstākā /proc/*/oom_score vērtība), neizraisot sistēmas stāvokli. lai notīrītu sistēmas buferus un traucētu darba apmaiņu (OOM (Out Of Memory) apdarinātājs kodolā tiek iedarbināts, kad ārpus atmiņas stāvoklis jau ir sasniedzis kritiskās vērtības un parasti līdz šim brīdim sistēma vairs nereaģē lietotāja darbībām).

Earlyoom atbalsta paziņojumu nosūtīšanu uz darbvirsmu par piespiedu kārtā pārtrauktiem procesiem (izmantojot notify-send), kā arī nodrošina iespēju definēt noteikumus, kuros, izmantojot regulārās izteiksmes, varat norādīt procesu nosaukumus, kurus vēlams pārtraukt (opcija "- -prefer") vai jāpārtrauc (opcija "--izvairās").

Galvenais izmaiņas jaunajā laidienā:

  • uz rēķina slinka iekraušana process piešķir par 50% ātrāku procesa atlases loģiku pabeigšanai;
  • Nodrošināts, ka tiek reģistrēts procesa UID, kas tiek pārtraukts, papildus PID un procesa nosaukumam;
  • Pievienots atkļūdošanas žurnāla izcelšana gaiši pelēkā krāsā;
  • Notīra kodu;
  • Ja iespējams, tika izmantota bloku lokālo mainīgo lielumu deklarēšana;
  • Pievienots PATH_LEN iestatījums, lai aizstātu kodā iešūtā bufera izmēra vērtību;
  • Nodrošināts, ka tiek palaists cppcheck, ja tas ir pieejams;
  • Pievienots "make bench" veiktspējas tests;
  • Paplašināts testu komplekts (make test);
  • Ieviesta saknes privilēģiju atiestatīšana systemd earlyoom.service vienības failā. Šīs izmaiņas pārtraukumiem GUI paziņojumu iespēja. Lai iespējotu GUI paziņojumus, tiek piedāvāts atgriezt saknes tiesības, atceļot komentāru "DynamicUser=true". Arī saknes atspējošana приводит uz nespēju iegūt informāciju par atmiņas patēriņu, uzstādot /proc režīmā hidepid=1 vai hidepid=2.

Avots: opennet.ru

Pievieno komentāru