Atvirasis kodas tinklaraščiuose

December 12 d.

Remigijus Jarmalavičius

Pomodoro technika: patirtis po 6+ metų naudojimo

2012 metais pirmą kartą perskaičiau apie Pomodoro. Kadangi esu megėjas visokių straipsnių / knygų / seminarų apie produktyvumą - nekantravau išbandyti.

Tai labai paprasta technika:

1) Nusistatai laikmatį. Standartiškai 25 min.
2) Dirbi ir stengiesi neturėti per tą laiką trikdžių.
3) Pailsi 5-15 min.
4) Kartoji 2-3 punktus kol griūni apspangęs nuo produktyvumo.

Ketvirtas punktas nebūtinas.

Bene standartiškai yra siūloma po kiekvienos sesijos padaryti 5 min. pertrauką, o po ketvirtosios - ilgesnę - 15 min. pertrauką.

Trikdžių atsikratymas čia dirba svarbią rolę ir tam turbūt reikėtų atskiro straipsnio.

Iškarpa iš mano Tomato.es profilio - tiek kasdien Pomodoro padarau

Tinka beveik visiems

Tokios technikos puikiai tinka prie kompiuterio sėdintiems darbuotojams - ypač programuotojams, dizaineriams, marketingistams ir pan.

Arba tobula technika studentams - žmonėms kuriems dažniausiai reikia prisiversti prisėsti prie studijų.

Greičiausiai netinka fabriko darbuotojams arba žmonėms kurie turi daug pasikartojančio darbo. Tokia technika tik išsekintų smegenis.

Atidėliojimo problema

Iš patirties atradau, kad tai labai gerai išsprendžia atidėliojimo problemą.

Visi turime darbų kuriuos anksčiau ar vėliau atidedame ir dėl to, žinoma, gailimės. Aš su šia bėda jau gana anksti pradėjau kovoti taip: kiekvieną dieną skirdamas vieną ar kelias Pomodoro sesijas (viena sesija, tipiškai būna 25 min).

Ir taip, 1-2 Pomodoro kasdien yra ženkliai geriau nei žadėjimas sau, kad RYTOJ kelioms valandoms prisėsite prie to ko reikia.

Tai ypač tinka programuotojams kurie be savo standartinio darbo dar nori kažką padaryti savo, bet sunkiai sekasi tą padaryti po darbo. Turiu omeny, kad pats sunkumas yra ne tiek, kad rasti laiko, o rasti jėgų ir noro. Pomodoro čia labai gerai veikia.

Kitoks laiko nustatymas

Nors keletą kartų eksperimentavau su laiko nustatymais (mėgindamas didesnius nei 25 min. ruožus) - visgi pats geriausias pasirodė standartiškai rekomenduojamos 25 minutės.

Bet su pertraukomis taip gerai nesielgiu.

Dažniausiai padirbu 2 pomodoro iš eilės (viso 50 min.) ir tada einu trumpai pailsėti: 10-15 min.

Turėjau ir viešą profilį su Pomodoro sekimu - Tomato.es. Jame galima pažiūrėti kaip maždaug atrodė mano tipinės dienos.

Arba dienos - rekordininkės - 31 pomodoro per dieną.

Pomodoro įrankiai

Tas pats Tomato.es yra visiškai nemokamas ir atviro kodo. Man yra tekę jį parsisiųsti ir modifikuoti pagal savo norus - kodo bazė nesudėtinga, todėl galima prasiplėsti įrankį.

Esu naudojęs Gnome Pomodoro - super įrankis, jeigu naudojate Linux.

Iškarpa iš mano Toggl profilio - atfiltruotas laikas savo asmeniniams projektams

Turbūt populiariausias laiko apskaitos įrankis internete yra Toggl. Jis duoda šią galimybę per tokius įrankius (nemokamus) kaip Chrome Extension. Nors ir veikia ne 100%, bet aš pats naudoju jau virš 4 metų ir iš esmės galima susitaikyti su nedidelėmis klaidomis.

Visiškams geek’ams galėtų pamatyti Pomodoro BASH skriptas - irgi naudojau ilgiau nei metus.

by Remigijus Jarmalavičius at 2018 m. December 12 d. 4:41

November 28 d.

Remigijus Jarmalavičius

Atvaizdai užimantys daugiausiai disko vietos Dockeryje

Dirbant su Docker gali ne kartą kilti klausimas kur dingsta disko vieta.

Jeigu žinote ar skaitėte anksčiau kaip veikia Docker, tai jis kiekvienam Dockerfile žingsniui kuria kešavimo atvaizdą. Vėliau kešavimo atvaizdas pernaudojamas dar kelis kartus kol galop sukuriamas norimas atvaizdas kurį jau leisite konteineryje. Tačiau kešas vistiek užsiliks.

Kiek užima atvaizdai

Pažiūrėti kiek užima Docker atvaizdai galima su komanda:

$ docker images

REPOSITORY                               [..]         SIZE
apikaupyklalt_kaupykla.lt-api            [..]         670MB
jarmalaviciuslt_jarmalavicius.lt-web     [..]         1.4GB
python                                   [..]         918MB
quizaminacom-api_quizamina.com-api       [..]         1.01GB
imagemizecom-api_imagemize.com-api       [..]         1.04GB
python                                   [..]         74.3MB

Atvaizdų dydžiai pagal TOP’ą

Jeigu domina išsirikiuoti atvaizdus pagal dydį, kad identifikuoti kas daugiausiai vietos užima ir ką galima optimizuoti:

$ docker images | awk 'NR!=1 {print $7"\t"$1}' | sort -rh

1.4GB   jarmalaviciuslt_jarmalavicius.lt-web
1.04GB  imagemizecom-api_imagemize.com-api
1.01GB  quizaminacom-api_quizamina.com-api
990MB   adminkaupyklalt_kaupykla.lt-admin
918MB   python
783MB   docker.elastic.co/elasticsearch/elasticsearch
703MB   services_apache
670MB   apikaupyklalt_kaupykla.lt-api

Trumpas komandos awk 'NR!=1 {print $7"\t"$1} paaiškinimas:

NR!=1 - praleidžia pirmą eilutę kurioje yra antraštės juosta (stulpelių pavadinimai).

{print $7"\t"$1} - sukeičiame pirmą ir paskutinį stulpelį, kad vėliau rikiavimo komanda galėtų išrikiuoti gražų sąrašą su TOP’ais.

Trumpas sort -rh komandos paaiškinimas:

-r - reiškia angl. reverse. Paprastas rikiavimas su sort būna didėjančiai, o mums reikia mažėjančio (todėl -r), kad viršuje matytume pačius didžiausius, apačioje - pačius mažiausius atvaizdus.

-h - reiškia angl. human numeric. Rikiuoja pagal pagal skaičius, tačiau žiūri ir prie jo esančią raidę M (MB), K (KB), G (GB) ir t.t.

Kaip pašalinti atvaizdus ir gauti daugiau disko vietos

Kaip atsilaisvinti disko vietos su Docker jau rašiau praėjusiame straipsnyje.

by Remigijus Jarmalavičius at 2018 m. November 28 d. 4:36

November 19 d.

Remigijus Jarmalavičius

FTP su Docker

Kažkada užsiėminėjant savanoriška veikla teko bendrauti su Lietuviška IT įmone kuri viename projekte turėjo ištaisyti kelias savo klaidas. Na, gal ne tiek, kad kelias klaidas, veikiau jau visiškai neveikiantį projektą sutaisyti. Tačiau įmonė buvo iš tų dinozauriškų laikų, kur support’ą savo neveikiantiems projektams darė per… FTP :(

Ir žinoma, kas šiais laikais nori į serverius diegti FTP? Laimei, žinojau, kad prieigos reikia 1-3 dienoms - kol projektas bus pataisytas. Taigi FTP pakūriau su Docker pagalba.

Sukurkime FTP serverį su Docker

Vos viena komanda ir ant standartinio prievado (angl. „port“) bus pakurtas FTP servisas / demonas kuris turės vieną vartotoją ir galės vaizduoti tik vieną FTP katalogą:

#!/bin/bash

docker run -d -v /kelias/iki/projekto:/home/vsftpd \
           -p 20:20 -p 21:21 -p 47400-47470:47400-47470 \
           -e FTP_USER=VARTOTOJAS \
           -e FTP_PASS=SLAPTAŽODIS \
           -e PASV_ADDRESS=SERVERIO-IP \
           --name ftp \
           --restart=always \
           bogem/ftp

Panaudotas Docker atvaizdas - bogem/ftp.

Kodėl ne ProFTPd ar kita įranga?

Iš esmės gali kilti klausimas kam reikia Docker’io čia, kai nuo to paties skiria vos viena komanda:

apt-get install proftpd
yum install proftpd
[..]

Pirmiausiai tai, kad gyvename jau ne dinozaurų laikais ir Docker’is jau turėtų tapti vos ne butinybė serveriuose. Arba kitokios, konteinerizuotos, Docker alternatyvos.

Antra - Dockeris duoda tiek pat kontrolės kaip ir įdiegtos specializuotos programinės įrangos.

Trečia - Dockeris daugeliu atveju išsprendžia poreikį konfigūruoti programinės įrangos nustatymus. Vos viena komanda - ir FTP servisas jau pilnai veikiantis, turi vartotojus ir gali būti bet kada lengvai atjungtas.

FTP sustabdymas

Ar veikia ar neveikia Docker FTP atvaizdas/konteineris matysite su docker ps komanda. Jeigu nėra FTP įrašo - vadinasi konteineris neveikia ir FTP neveikia. Jeigu įrašas yra, reiškia FTP vis dar veikia.

Išjungti konteinerį galima su tokia Docker komanda:

docker stop ftp

FTP pašalinimas iš sistemos

Sustabdžius konteinerį galima jį pašalinti:

docker rm ftp

Docker konteinerio nebematysite:

docker ps -a | grep ftp

Jeigu žinote, kad FTP tikrai daugiau nebereikės, tuomet galite pašalinti ir patį atvaizdą kuris yra vis dar Jūsų diske. O diske jis todėl, kad kitą kartą paleidus FTP kūrimo komandą - viskas suveiks žaibiškai, nes atvaizdas užkešuotas ir siųsti iš interneto jo jau nereikės.

Pašalinkite atvaizdą ir atlaisvinkite disko vietą:

docker rmi bogem/ftp

by Remigijus Jarmalavičius at 2018 m. November 19 d. 4:57

November 16 d.

Remigijus Jarmalavičius

Kaip su Pygame varžiausi Pyweek #26 turnyre

2018 spalį vyko jau 26 Pyweek turnyras. Tai trečiasis turnyras kuriame spėjau sudalyvauti.

Turnyro tema buvo „tekmė“ (angl. flow). Žinoma, šį žodį galima versti į kokius tik nori sinonimus.

Gaila, kad po truputį blėsta žaidimų kūrėjų gretos kasmet šiame turnyre - kiekvienais metais žaidimus pabaigia vis mažiau kūrėjų.

Jeigu įdomu kas tai per turnyras - galite pasiskaityti daugiau praėjusiame straipsnyje: Pyweek turnyras - kas tai?

Su kokiu žaidimu startavau aš

Su Pygame varikliu kūriau piratų mūšio žaidimą:

Pyweek #26 žaidimo "Pirate Flow" ekrano vaizdas

Per 19 valandų pavyko sukurti žaidimą kuriame galima šaudyti priešus (laivai ir patrankas), plaukioti po didžiulį pasaulį, rinkti taškus, gyvybes ir atlikti kelias misijas.

Deja, nors ir skyriau tikrai daug valandų - tai ką buvau sumąstęs savaitės pradžioje - nepavyko padaryti. Bet dėl to neverta nusiminti.

Tai buvo gal jau penktas mano Pygame žaidimas (ir trečiasis kurį dariau Pyweek turnyrui) ir aš vis dar stebiuosi, kad nepamėginau kitos platformos / framework’o. Bet gal kada nors.

Kaip visada sunkiausiai sekėsi ne sugalvoti kas atitiktų temą, bet padaryti patį žaidimą smagų. Tai iššūkis kuriam tikrai reikia labai daug praktikos.

Kurią vietą laimėjau

Su šiuo žaidimu laimėjau 14 vietą.

Praėjęs mano žaidimas laimėjo 19 vietą, o pats pirmasis Pyweek žaidimas - 32.

Išeities kodas

Parsisiųsti ir pažaisti žaidimą galima iš Github repozitorijos: Pirate Flow žaidimo išeities kodas.

Pasileidimo instrukcijos yra Readme faile ir neturėtų užimti daugiau nei kelių minučių.

Kokia prasmė dalyvauti

Kai kam svarbiausia bus azartas konkuruoti arba azartas užbaigti žaidimą per savaitę.

Nors man azartas buvo svarbus, bet daugiausiai motyvavo galimybė ir vėl ko nors naujo išmokti. Taip ir buvo!

Ar galima ko išmokti iš kitų kūrėjų?

Pasibaigus Pyweekui būtinai pažaidžiu ir kitų kurtus žaidimus. Ir bandau atspėti kas kelintą vietą užims. Dažniausiai būnu arba visiškai teisus arba labai arti tiesos.

Ir visus visus žaidimus apžiūriu kaip jie suprogramuoti. Kadangi Pyweek’e gauni kiekvieno žaidimo išeities kodą (kurį ir paleidinėji, o ne kokius binarinius nesaugius failus) - pažiūrėti į žaidimus iš jų pačių „virtuvės“ nebus sunku. Būna įdomu pažiūrėti ir palyginti su savo žaidimo logiką: lengva rasti optimizacijų, geresnių praktikų arba tiesiog kaip geriau daryti žaidimo architektūrą.

Patarimai iš patirties

Niekada nekūrėte žaidimų? Tai Pyweek kaip tik Jums! Čia pirmieji startuoliai labai laukiami.

Bijote, kad nesugebėsite? Tai nesvarbu. Padarykite kažką kas bent jau judėtų ar reaguotų ir viešinkite. Vėliau tikrai rasite noro ir jėgų patobulinti.

Neturite laiko tokiems dalykams, bet patinka žaidimų kūrimas? Tai Pyweek kaip tik Jums! Tik viena savaitė ir viskas. Kiek spėsite - tiek spėsite. Greičiausiai tiek turėsite daug motyvacijos, kad negalėsite atsiplėšti ir sedėsite vakarais / naktimis.

Atsimenu pirmasis-antrasis Pyweek’as man buvo šiek tiek su stresu, kadangi norėjosi tarsi nesusimauti. Susimauti - čia nėra kur. Kolektyvas kuris kuria ir vertina žaidimus priims labai nuoširdžiai ką Jūs padarėte ir negausite piktų žinučių vertinimo metu.

Todėl tikrai siūlau pamėginti!

by Remigijus Jarmalavičius at 2018 m. November 16 d. 4:48

November 5 d.

Remigijus Jarmalavičius

1000 knygų tikslas

Kartą lankydamasis knygyne ir ieškodamas sekančios knygos skaitymui, pamačiau kažkokią keistą knygą pavadinimu „1001 knyga kurią privalai perskaityti per savo gyvenimą“.

Knygos „1001 knyga kurią privalai perskaityti per savo gyvenimą“ viršelis

Pati knyga yra turbūt skirta tiems, kas mėgsta sąrašus ir skaitymą pagal juos. Ir tai tinka labiau tiems, kas mėgsta tam tikrą knygų žanrą - detektyvus, romanus ir pan. Arba tiems, kurie nori turėti kažkokį skaitymo tikslą…

Ir tada toptelėjo - perskaityti tūkstantį knygų per gyvenimą atrodo visai neblogas tikslas!

Minėtos knygos nepirkau ir nesigilinau kas joje - grožinė literatūra man ne prie širdies. Tik knygos pavadinimas buvo naudingas - aš pats nuspręsiu ką man skaityti.

Kiek perskaičiau iki dabar

Šį tikslą jau tęsiu 6 metus.

Per juos perskaičiau daugiau nei 220 knygų.

Tokiais greičiais tūkstantį perskaityti nebus lengva / greita. Tačiau skaitau savo malonumui - todėl skubėti nėra kur :)

Ar verta turėti knygų skaitymo tikslą?

Skaitau tik asmeninio tobulėjimo knygas. Todėl perskaityti tokį didelį kiekį knygų atrodo labai gera mintis - puiki vieta sužinoti apie laiko valdymą, pinigų kontrolę, plėsti požiūrį ir tobulinti filosofiją į gyvenimą.

Literatūrinių knygų (detektyvų, romanų ir pan.) neskaitau. Tačiau pažįstu daug žmonių, kurie tik tokias knygas ir mėgsta. Pavyzdžiui mano žmona. Neturiu nieko prieš, svarbiausiai - kad tokios knygos būtų skaitomos savo malonumui.

Tiksliai nežinau ar būtų koks nors tikslas turėti skaitymo tikslą kalbant apie literatūrines knygas. Šioje situacijoje, jeigu mėgčiau grožinę literatūrą, gal tiesiog imčiau ir mėginčiau perskaityti pačias populiariausias mėgstamo žanro knygas. Internetas pilnas TOP XYZ literatūrinių knygų sąrašų.

O kam išvis skaityti?

Turiu ne vieną draugą kurie „giriasi“, kad knygų neskaito. Niekada nesakau to garsiai, bet pirma mintis šaunanti į galvą būna - „matosi, kad neskaitai“.

Yra toks populiarus posakis „apsiskaitęs žmogus“. Tokio žmogaus akiratis būna platesnis ir požiūris ne toks kategoriškas, lankstesnis. Tuo pačiu dažniausiai dėl plataus akiračio žmogus tampa daug įdomesnis ir atrodo protingesnis. Tikrai teko ne kartą sutikti tokių žmonių ir įsitikinti, kad žmogus tikrai daug skaitantis.

Neskaitymas - rimta problema

Mokiniai skaityti dažniausiai nemėgsta. Tai daroma labiau per prievartą / vertimą. Buvau ten.

Štai kaip atrodo kelių metų senumo Delfi naujenų portalo antraštė:

52 proc. suaugusiųjų teigia, per savaitę visiškai neskiriantys laiko skaitymui, tuo tarpu televizoriaus nežiūri tik 2,5 proc. gyventojų.

Pats papuolu prie tų skaičių kurie televizoriaus išvis neturi. Bet esu turėjęs prieš ~10 metų ir tikrai žinau, kad lengva išugdyti rutiną grįžus po darbo ir prisėdus bukai spoksoti į ekraną.

Tačiau vakaras gali būti produktyvesnis jeigu paimsite knygą.

O jeigu knygų nemėgstate - internete pilna kursų kurių dėka galite ko nors naujo išmokti, ko nors naudingo. Kas galbūt ir karjeroje praverstų kopiant į viršų.

Kokias knygas rekomenduočiau

2018 metais (po 6 metų skaitymo) geriausias knygas sudėjau į vieną sąrašą kurį pavadinau - knygos kurias būtina perskaityti

O specialioje knygų kategorijoje rasite nemažai įvairių knygų apžvalgų.

by Remigijus Jarmalavičius at 2018 m. November 5 d. 9:28

October 11 d.

opensuse.lt

Microsoft prisijungia prie organizacijų, padedančių Linux bendruomenei dėl patentų kovų, tačiau atviro kodo bendruomenei to nepakanka

Microsoft kompanija ką tik prisijungė prie LOT ir OIN organizacijų, kurios padeda Linux bendruomenei dėl patentų kovų. Prie jų prisijungusi Microsoft kompanija įgauna teisę nemokamai naudotis patentais, kurie priklauso kitoms kompanijoms, palaikančioms atviro kodo bendruomenę. Tačiau atvirojo kodo bendruomenė (tiksliau – Free Software Foundation organizacija) pastebi, kad to nepakanka ir reikalauja, kad Microsoft kompanija imtųsi realių žingsnių: aiškiai paskelbtų, jog nutraukia visus ieškinius prieš Linux (įskaitant Android) dėl patentų; realiai prisidėtų prie to, kad visiems GNU/Linux sistemose randamiems paketams nebūtų taikomi patentų apribojimai (įskaitant problematiškus įvairialypės terpės paketus); prisijungtų prie iniciatyvų, kad programinei įrangai apskritai negaliotų patentai (pvz., kad prisijungtų End Software Patents judėjimo). Jei Microsoft kompanija nesiimtų minėtų veiksmų, o vėliau persigalvotų dėl dalyvavimo LOT ir OIN organizacijų veikloje, tuomet Microsoft kompanijos agresija patentų klausimais būtų dar pavojingesnė. Todėl atvirojo kodo bendruomenė atsargiai vertina Microsoft kompanijos žingsnius (kurie kol kas yra sveikintini) ir žada juos toliau akylai stebėti.

Daugiau informacijos anglų kalba čia.

2018 m. October 11 d. 20:06

October 7 d.

opensuse.lt

TeamViewer 13 Linux sistemose nebesiremia Wine, o funkcionalumas jau beveik toks pat

TeamViewer leidžia nuotoliniu būdu prisijungti prie kito kompiuterio darbalaukio ir palaiko daugybę operacinių sistemų. Jau greitai bus metai laiko, kaip TeamViewer kūrėjai pranešė apie TeamViewer 13 versiją, kuri veikia Linux sistemose nebenaudodama Wine emuliatoriaus (kuris leidžia paleisti Windows programas kitose operacinėse sistemose), o yra sukompiliuota Qt pagrindu būtent Linux sistemoms. Parsisiųsti openSUSE 64 bitų sistemoms skirtą RPM paketą galite iš TeamViewer 13 galite iš <https://www.teamviewer.com/lt/download/linux/>. TeamViewer 13.2 versija Linux sistemoms, kuri pasirodė 2018 m. vasarą, savo funkcionalumu jau beveik prilygsta kitoms operacinėms sistemoms skirtoms versijoms; žadama, kad kita versija jau bus visiškai pilnavertė. Tiesa, naujesnės ir senesnės versijos nėra pilnai susišnekančios: iš kompiuterio su naujesne TeamViewer programos versija jūs galėsite prisijungti prie kompiuterio su senesne TeamViewer versija ir tą kompiuterį valdyti nuotoliniu būdu; bet iš senesnių TeamViewer versijų negalėsite prisijungti prie naujesnių. Beje, ankstesnė TeamViewer 12 versija šiaip ar taip jau nebeveikė naujausioje openSUSE Leap 15.0 versijoje.

2018 m. October 7 d. 11:36

October 5 d.

opensuse.lt

Nėra galimybių deklaruoti siuntų muitinės sistemoje naudojant Linux

Lietuvos gyventojai vis dažniau siunčiasi prekes iš užsienio. Jei siunta viršija 22 Eur, tuomet už ją reiktų mokėti PVM, o jei viršija 150 Eur – gali tekti mokėti ir muito mokestį (daugiau informacijos muitinės svetainėje). Siunčiantis prekes iš užsienio, jas gali tekti deklaruoti muitinės deklaracijų apdorojimo sistemoje (MDAS). Tą galite patikėti daryti muitinės tarpininkams (paslauga brangi) arba bandyti tai daryti patys (jei turite nepaprastai daug laisvo laiko ir kantrybės). Net jei pasirašysite sutartį su muitine, kad galėtumėte prisijungti prie MDAS, jums deklaruoti siuntų naudojant Linux šiai dienai (bent 2018 m.) niekaip nepavyks. Net jei jums pavyksta naudotis elektroniniu parašu jungiantis prie kitų valstybinių įstaigų ar bankų. Nepavyks ne dėl to, kad nebūtų Linux sistemai elektroninio parašo tvarkyklių ar atitinkamų programų. Nepavyks dėl to, kad pačiame specialiame muitinės JAVA priede naršyklėms net nėra numatyta galimybė prisijungti su Linux prie MDAS. Jums būtinai tam tikslui reikės naudoti komercinę operacinę sistemą. Tikėkimės kada nors ateityje situacija pasikeis.

2018 m. October 5 d. 19:10

September 16 d.

opensuse.lt

lietukas.lt – trumpesnis adresas pasiekti „Lietuko“ svetainę

Nuo šiol openSUSE sistemos pilnavertę komplektaciją Lietuvai su KDE Plasma darbalaukio aplinka galite pasiekti trumpesniu ir lengviau įsimenamu adresu – http://www.lietukas.lt 

2018 m. September 16 d. 15:08

September 13 d.

Remigijus Jarmalavičius

Trūksta RAM, bet turite disko vietos?

Įsigijote mažą serveriuką savo mikroservisui, tačiau jam karts nuo karto neužtenka RAM? Dažniausiai tai lengvai išsprendžiama, nes mikroservisams disko vietos dažniausiai būna per akis. Tuo pasinaudojus galima gauti netikros RAM atminties, kuri nors bus lėtesnė, bet vistiek labai naudinga.

Taip, kalbu apie SWAP skirsnius.

SWAP skirsniai, grubiai tariant, veikia taip: jeigu operacinė sistema savo atminties neišlaiko RAM’uose, tai dalį tos atminties gali įrašyti į diską, kad ji nepasimestų. Didžiausias minusas yra tas, kad RAM’ai yra N kartų greitesni už diskus, todėl to pasekoje atminties skaitymas ir rašymas šiek tiek kentės. Bet tai vistiek geriau nei išvis neturėti galimybės paleisti mikroserviso ar mokėti už didesnį serverio planą kai jo tikrai nereikia.

Tikriname ar turite SWAP skirsnių

Dažniausiai jokiuose serveriuose (serveriai.lt, EC2, DigitalOcean) neturėsite SWAP’o. Tą galite pasitikrinti su komanda:

    sudo swapon --show

Jeigu komanda neišvedė jokio turinio - vadinasi SWAP’o nėra, o tai yra gerai.

Kadangi naudosime disko vietą, tai reikia žinoti kiek jos turime ir nuspręsti kiek iš turimo kiekio galima rezervuoti:

    df -h
    udev            968M     0  968M   0% /dev                                                                                                                                                                                                 
    tmpfs           200M  2.3M  198M   2% /run                                                                                                                                                                                                 
    /dev/sda1        40G   28G  9.4G  75% /                                                                                                                                                                                                    
    tmpfs           997M     0  997M   0% /dev/shm                                                                                                                                                                                             
    tmpfs           5.0M     0  5.0M   0% /run/lock                                                                                                                                                                                            
    tmpfs           997M     0  997M   0% /sys/fs/cgroup

Iš pavyzdžio aukščiau matosi, kad turime 9GB laisvos vietos. Todėl RAM’ams galėtume skirti kokius 2GB. Tai reiškia, kad tik 7GB disko vietos liks po rezervacijos.

SWAP sukūrimas

Sukurkime SWAP failą į kurį operacinė rašys atminties informaciją:

    sudo fallocate -l 2G /swapfile

Ties 2G galite nurodyti norimą dydį. Ši komanda sukurs pasirinkto dydžio failą - taip vyksta disko vietos rezervacija.

Toliau, saugumo sumetimais, SWAP failą padarykime skaitomą tik root naudotojui, kad kiti negalėtų skaityti atminties turinio:

    sudo chmod 600 /swapfile

Ir dabar galime užregistruoti failą kaip SWAP skirsnį:

    sudo mkswap /swapfile
    sudo swapon /swapfile

Pasitikriname ar turime daugiau atminties

Pasitikrinti savo naują atmintį galima su:

    sudo swapon --show
    NAME      TYPE SIZE   USED PRIO
    /swapfile file   2G 839.8M   -2

Atmintis dingsta po perkrovimo

Jeigu tokio atminties padidinimo reikia tik vienam kartui (tarkime turite procesą kurį leisite tik kartą ir jis naudoja daugiau RAM atminties nei turite), tai bus džiugu, kad po serverio perkrovimo SWAP’o neliks, o SWAP failą galėsite ištrinti ir taip atgauti disko vietą.

Tačiau jeigu norite, kad mikroservisai (kaip pavyzdys) nuolat turėtų RAM’ą, tuomet užteks skirsnių registracijos metu užregistruoti ir SWAP’ą keliomis komandomis:

    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Failo /etc/fstab atsarginę kopiją visada pravartu turėti.

by Remigijus Jarmalavičius at 2018 m. September 13 d. 9:20