{"id":1342,"date":"2014-08-28T11:59:28","date_gmt":"2014-08-28T09:59:28","guid":{"rendered":"http:\/\/pclos.janu.hu\/?p=1342"},"modified":"2014-08-28T11:59:28","modified_gmt":"2014-08-28T09:59:28","slug":"limitek-beallitasa-ulimit-tel","status":"publish","type":"post","link":"http:\/\/pclos.janu.hu\/?p=1342","title":{"rendered":"Limitek be\u00e1ll\u00edt\u00e1sa ulimit-tel"},"content":{"rendered":"<p><span class=\"collabname\">\u00cdrta: Sandra Henry-Stocker<\/span><\/p>\n<div class=\"article\" lang=\"hu_HU\">\n<div class=\"titlepage\">\n<div>\n<div class=\"authorgroup\">\n<div class=\"editor\">\n<h4 class=\"editedby\">Szerkesztette<\/h4>\n<h3 class=\"editor\"><span class=\"surname\"><a name=\"surname_0\"><\/a>Hazai<\/span>, <span class=\"firstname\"><a name=\"firstname_0\"><\/a>G\u00e9za<\/span><\/h3>\n<\/div>\n<\/div>\n<\/div>\n<div>\n<p class=\"releaseinfo\">Az eredeti cikk: <a class=\"ulink\" href=\"http:\/\/www.itworld.com\/operating-systems\/317369\/setting-limits-ulimit\" target=\"_blank\">Setting limits with ulimit<\/a><\/p>\n<\/div>\n<\/div>\n<hr \/>\n<p><span class=\"bold\"><strong>2012. november 18.<\/strong><\/span><\/p>\n<\/div>\n<p>Egy Unix szerver adminisztr\u00e1l\u00e1sa kih\u00edv\u00e1s lehet, k\u00fcl\u00f6n\u00f6sen akkor, ha az \u00e1ltalad menedzselt rendszert er\u0151sen ig\u00e9nybe veszik \u00e9s a teljes\u00edtm\u00e9nybeli probl\u00e9m\u00e1k cs\u00f6kkentik a haszn\u00e1lhat\u00f3s\u00e1got. Szerencs\u00e9re korl\u00e1tozhatod az egyes er\u0151forr\u00e1s ig\u00e9nybev\u00e9teleket, hogy a szerver legfontosabb folyamatai dolgozhassanak \u00e9s a versenyhelyzet\u0171 folyamatok ne fogyasszanak t\u00f6bb er\u0151forr\u00e1st, mint amennyi megfelel a teljes rendszernek. <!--more-->Az <span class=\"emphasis\"><em>ulimit<\/em><\/span> parancs megel\u0151zheti a katasztr\u00f3f\u00e1t, de el\u0151re l\u00e1tni kell, hol van \u00e9rtelme korl\u00e1tozni \u00e9s hol okozhat ez probl\u00e9m\u00e1t.<\/p>\n<p>Lehet, hogy nem gyakran fordul el\u0151, de egy felhaszn\u00e1l\u00f3, aki t\u00fal sok folyamatot ind\u00edt el, haszn\u00e1lhatatlann\u00e1 teszi a rendszert m\u00e1sok sz\u00e1m\u00e1ra. Egy fork bomba \u2013 egy szolg\u00e1ltat\u00e1s megtagad\u00e1si t\u00e1mad\u00e1s, amelyben egy folyamat ism\u00e9tl\u0151d\u0151en sokszorozza saj\u00e1t mag\u00e1t, am\u00edg a rendelkez\u00e9sre \u00e1ll\u00f3 er\u0151forr\u00e1sok ki nem mer\u00fcltek \u2013 a legrosszabb ilyen eset. De m\u00e9g a gondos felhaszn\u00e1l\u00f3 is haszn\u00e1lhat t\u00f6bb er\u0151forr\u00e1st, mint ami megfelel a rendszernek \u2013 an\u00e9lk\u00fcl, hogy \u00e9szrevenn\u00e9. Ugyanakkor a leg\u00e1lis folyamatok is megszakadhatnak, ha el\u00e9rik az \u00e1tlagos felhaszn\u00e1l\u00f3 sz\u00e1m\u00e1ra meg\u00e1llap\u00edtott limitet. Ebben az esetben meg kell gy\u0151z\u0151dni arr\u00f3l, hogy ezek a folyamatok a megn\u00f6velt er\u0151forr\u00e1sokkal \u00fagy dolgoznak, hogy nem haszn\u00e1lnak mindenki sz\u00e1m\u00e1ra ig\u00e9nyelhet\u0151 er\u0151forr\u00e1sokat<\/p>\n<p>Ha szeretn\u00e9d l\u00e1tni a bel\u00e9p\u00e9sedhez tartoz\u00f3 limiteket, haszn\u00e1ld az <span class=\"emphasis\"><em>ulimit -a<\/em><\/span> parancsot. Ha Te egy \u00e1tlagos felhaszn\u00e1l\u00f3i bel\u00e9p\u00e9st haszn\u00e1lsz, akkor val\u00f3sz\u00edn\u0171leg valami hasonl\u00f3t l\u00e1tsz:<\/p>\n<pre class=\"programlisting\">$ ulimit -a\r\ncore file size          (blocks, -c) 0\r\ndata seg size           (kbytes, -d) unlimited\r\nscheduling priority             (-e) 0\r\nfile size               (blocks, -f) unlimited\r\npending signals                 (-i) 32767\r\nmax locked memory       (kbytes, -l) 32\r\nmax memory size         (kbytes, -m) unlimited\r\nopen files                      (-n) 1024\r\npipe size            (512 bytes, -p) 8\r\nPOSIX message queues     (bytes, -q) 819200\r\nreal-time priority              (-r) 0\r\nstack size              (kbytes, -s) 10240\r\ncpu time               (seconds, -t) unlimited\r\nmax user processes              (-u) 50\r\nvirtual memory          (kbytes, -v) unlimited\r\nfile locks                      (-x) unlimited\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>A legels\u0151 szembet\u0171n\u0151 dolog az, hogy nem hozhatsz l\u00e9tre mem\u00f3ria pillanatfelv\u00e9telt (core dump) \u2013 mert a core f\u00e1jlm\u00e9ret 0. Igen, ez nem jelent semmit, nincs adat, nincs mem\u00f3ria t\u00e9rk\u00e9p. Ha az \u00e1ltalad futtatott folyamat megszakad, nem keletkezik mem\u00f3ria pillanatfelv\u00e9tel f\u00e1jl a bel\u00e9p\u00e9si mapp\u00e1dban. Mindaddig, am\u00edg a core f\u00e1jlm\u00e9ret null\u00e1ra van \u00e1ll\u00edtva, mem\u00f3ria pillanatfelv\u00e9tel nincs enged\u00e9lyezve. A legt\u00f6bb felhaszn\u00e1l\u00f3 sz\u00e1m\u00e1ra ez \u00edgy term\u00e9szetes, mert nem csin\u00e1lna m\u00e1st egy mem\u00f3ria pillanatfelv\u00e9tellel, mint t\u00f6r\u00f6ln\u00e9, de ha sz\u00fcks\u00e9ged lenne a mem\u00f3ria pillanatfelv\u00e9telre egy fut\u00f3 alkalmaz\u00e1s probl\u00e9m\u00e1j\u00e1nak kider\u00edt\u00e9s\u00e9re, be szeretn\u00e9d \u00e1ll\u00edtani a core f\u00e1jl m\u00e9retet korl\u00e1tlannak \u2013 \u00e9s val\u00f3sz\u00edn\u0171leg meg is teheted.<\/p>\n<pre class=\"programlisting\">$ ulimit -c unlimited\r\n$ ulimit -c\r\nunlimited\r\n<\/pre>\n<p>Ha egy szervert menedzselsz \u00e9s a mem\u00f3ria pillanatfelv\u00e9tel k\u00e9sz\u00edt\u00e9s lehet\u0151s\u00e9g\u00e9t be akarod kapcsolni minden felhaszn\u00e1l\u00f3 sz\u00e1m\u00e1ra \u2013 feltehet\u0151en \u0151k fejleszt\u0151k, akiknek t\u00e9nyleg sz\u00fcks\u00e9g\u00fck lehet ezeknek a mem\u00f3ria pillanatfelv\u00e9teleknek az elemz\u00e9s\u00e9re \u2013 v\u00e1lts <span class=\"emphasis\"><em>root<\/em><\/span> felhaszn\u00e1l\u00f3ra \u00e9s szerkeszd a <code class=\"computeroutput\">\/etc\/security\/limits.conf<\/code> (<span class=\"bold\"><strong>Linux<\/strong><\/span>), vagy v\u00e1ltoztasd meg a <code class=\"computeroutput\">\/etc\/system<\/code> f\u00e1jlt (Solaris).<\/p>\n<p>M\u00e1sr\u00e9szt viszont, ha szervert menedzselsz \u00e9s nem akarod enged\u00e9lyezni egyik felhaszn\u00e1l\u00f3nak sem a mem\u00f3ria pillanatfelv\u00e9tel gener\u00e1l\u00e1s\u00e1t, f\u00fcggetlen\u00fcl att\u00f3l, hogy milyen m\u00e9lyre bonyol\u00f3dnak a dolgaikba, 0-ra \u00e1ll\u00edthatod ezt a limitet a <code class=\"computeroutput\">limits.conf<\/code>-ban. Az erre szolg\u00e1l\u00f3 <span class=\"emphasis\"><em>ulimit<\/em><\/span> opci\u00f3 a <code class=\"computeroutput\">-u<\/code>. Megn\u00e9zheted a limitedet a fentebb eml\u00edtett <code class=\"computeroutput\">ulimit -a<\/code> paranccsal, vagy csak a \u201enproc\u201d limitedet az <code class=\"computeroutput\">ulimit -u<\/code> paranccsal.<\/p>\n<pre class=\"programlisting\">$ ulimit -u\r\n50\r\n<\/pre>\n<p>M\u00e9gegyszer, a felhaszn\u00e1l\u00f3id megv\u00e1ltoztathatj\u00e1k a limitjeiket egy m\u00e1sik <span class=\"emphasis\"><em>ulimit<\/em><\/span> paranccsal \u2013 <code class=\"computeroutput\">ulimit -u 100<\/code> \u2013 hacsak, term\u00e9szetesen, k\u00e9pesek r\u00e1. Ha korl\u00e1toztad a <code class=\"computeroutput\">limits.conf<\/code>-ban vagy a rendszer f\u00e1jlban a folyamataik sz\u00e1m\u00e1t 50-ben, akkor egy ehhez hasonl\u00f3 hiba\u00fczenetet kapnak, amikor megemelni pr\u00f3b\u00e1lj\u00e1k limitj\u00fcket:<\/p>\n<pre class=\"programlisting\">$ ulimit -u 100\r\n-bash: ulimit: max user processes: cannot modify limit: Operation not permitted<a class=\"footnote\" href=\"#ftn.id495428\" name=\"id495428\"><sup class=\"footnote\">[1]<\/sup><\/a>\r\n<\/pre>\n<p>A limiteket csoportonk\u00e9nt is be lehet \u00e1ll\u00edtani, \u00edgy, mondjuk, adhatsz a fejleszt\u0151knek t\u00f6bb folyamat futtat\u00e1si lehet\u0151s\u00e9get, mint a menedzsereknek. \u00cdrhatsz ilyen sorokat a <code class=\"computeroutput\">limits.conf<\/code> f\u00e1jlba:<\/p>\n<pre class=\"programlisting\">@managers          hard    nproc           50\r\n@developers        hard    nproc          200\r\n<\/pre>\n<p>Ha a megnyithat\u00f3 f\u00e1jlok sz\u00e1m\u00e1t akarod korl\u00e1tozni, egy m\u00e1sik be\u00e1ll\u00edt\u00e1st haszn\u00e1lj:<\/p>\n<pre class=\"programlisting\">@managers          hard    nofile         2048\r\n@developers        hard    nofile         8192\r\nsbob\t\t   hard    nofile\t  8192\r\n<\/pre>\n<p>Itt k\u00e9t csoportnak \u00e9s egy egy\u00e9ni felhaszn\u00e1l\u00f3nak n\u00f6velt\u00fck meg a nyithat\u00f3 f\u00e1jlok sz\u00e1m\u00e1t. Ezek mind kem\u00e9ny korl\u00e1tok. Ha l\u00e1gy korl\u00e1tot is be akarsz \u00e1ll\u00edtani, a felhaszn\u00e1l\u00f3k figyelmeztet\u00e9st kapnak, ha el\u00e9rik az als\u00f3 limitet.<\/p>\n<pre class=\"programlisting\">@developers        soft    nofile         2048\r\n@developers        hard    nofile         8192\r\n<\/pre>\n<p>Az <span class=\"emphasis\"><em>ulimit<\/em><\/span> opci\u00f3it megn\u00e9zheted a k\u00e9zik\u00f6nyv oldalon (<code class=\"computeroutput\">man ulimit<\/code>). Felh\u00edvja a figyelmet, hogy az <code class=\"computeroutput\">ulimit<\/code> a bash be\u00e9p\u00edtett parancsa \u2013 legal\u00e1bbis <span class=\"bold\"><strong>Linux<\/strong><\/span>on \u2013 \u00e9s a k\u00f6vetkez\u0151 opci\u00f3k haszn\u00e1lhat\u00f3k<a class=\"footnote\" href=\"#ftn.id495500\" name=\"id495500\"><sup class=\"footnote\">[2]<\/sup><\/a>:<\/p>\n<pre class=\"programlisting\">-a     Az \u00f6sszes aktu\u00e1lis korl\u00e1toz\u00e1s ki\u00edr\u00e1sa\r\n-c     A core f\u00e1jl maxim\u00e1lis m\u00e9rete\r\n-d     A folyamatok adatszegmens\u00e9nek maxim\u00e1lis m\u00e9rete\r\n-e     A maxim\u00e1lis \u00fctemez\u00e9si priorit\u00e1s (\"nice\")\r\n-f     Egy shell \u00e9s lesz\u00e1rmazottai \u00e1ltal \u00edrhat\u00f3 maxim\u00e1lis f\u00e1jlm\u00e9ret\r\n-i     A maxim\u00e1lis v\u00e1rakoz\u00f3 szign\u00e1lok sz\u00e1ma\r\n-l     A mem\u00f3ri\u00e1ban lefoglalhat\u00f3 maxim\u00e1lis m\u00e9ret\r\n-m     A maxim\u00e1lis rezidens m\u00e9ret (Linuxon nincs hat\u00e1sa)\r\n-n     A f\u00e1jl le\u00edr\u00f3k maxim\u00e1lis sz\u00e1ma (a rendszerek nagy r\u00e9sz\u00e9ben ez nem\r\n       \u00e1ll\u00edthat\u00f3 \u00e9rt\u00e9k)\r\n-p     A cs\u0151vezet\u00e9k m\u00e9rete 512 b\u00e1jtos blokkokban (nem \u00e1ll\u00edthat\u00f3)\r\n-q     A POSIX \u00fczenetsor maxim\u00e1lis m\u00e9rete b\u00e1jtban\r\n-r     A maxim\u00e1lis val\u00f3s idej\u0171 \u00fctemez\u00e9s priorit\u00e1sa\r\n-s     A maxim\u00e1lis verem m\u00e9ret\r\n-t     The maximum amount of cpu time in seconds\r\n-u     Egy\u00e9ni felhaszn\u00e1l\u00f3 \u00e1ltal haszn\u00e1lhat\u00f3 folyamatos maxim\u00e1lis sz\u00e1ma\r\n-v     Shell \u00e1ltal haszn\u00e1lhat\u00f3 virtu\u00e1lis mem\u00f3ria maxim\u00e1lis \u00e9rt\u00e9ke\r\n<\/pre>\n<p>Ha a limits.conf lehet\u0151s\u00e9get ad, el\u0151fordulhat, hogy k\u00fcl\u00f6nleges alkalmaz\u00e1soknak t\u00e9nylegesen sz\u00fcks\u00e9ges extra kapacit\u00e1st \u00e1ll\u00edthatsz be. Ebben a p\u00e9ld\u00e1ban az oracle felhaszn\u00e1l\u00f3 lehet\u0151s\u00e9get kap eg\u00e9szen 16384 folyamat futtat\u00e1s\u00e1ra \u00e9s 65536 f\u00e1jl megnyit\u00e1s\u00e1ra. Ezek a sorok ker\u00fclhetn\u00e9nek be az oracle felhaszn\u00e1l\u00f3 <code class=\"computeroutput\">.bash_profile<\/code>-j\u00e1ba.<\/p>\n<pre class=\"programlisting\">if [ $USER = \"oracle\" ]; then\r\n  if [ $SHELL = \"\/bin\/ksh\" ]; then\r\n    ulimit -p 16384\r\n    ulimit -n 65536\r\n  else\r\n    ulimit -u 16384 -n 65536\r\n  fi\r\nfi\r\n<\/pre>\n<p>A limitek be\u00e1ll\u00edt\u00e1sa v\u00e9delmet ny\u00fajthat megbolondult \u00e9s rosszindulat\u00fa folyamatok ellen, amelyek a rendszeredet haszn\u00e1lhatatlann\u00e1 teheti. Csak meg kell gy\u0151z\u0151dn\u00f6d arr\u00f3l, hogy a korl\u00e1tok T\u00e9ged szolg\u00e1lnak, ahogy tervezted az er\u0151forr\u00e1sok legjobb felhaszn\u00e1l\u00e1s\u00e1t, \u00e9s nem ellened vannak.<\/p>\n<div class=\"footnotes\">\n<hr style=\"width: 100; text-align: left; margin-left: 0;\" \/>\n<div id=\"ftn.id495428\" class=\"footnote\">\n<p><a class=\"para\" href=\"#id495428\"><sup class=\"para\">[1] <\/sup><\/a>-bash: -ulimit: max felhaszn\u00e1l\u00f3i folyamat: nem m\u00f3dos\u00edthatja a limitet: a m\u0171velet nem enged\u00e9lyezett<\/p>\n<\/div>\n<div id=\"ftn.id495500\" class=\"footnote\">\n<p><a class=\"para\" href=\"#id495500\"><sup class=\"para\">[2] <\/sup><\/a>Az eredeti angol sz\u00f6vegek magyar \u00e1tirat\u00e1t k\u00f6zl\u00f6m \u2013 <span class=\"emphasis\"><em>a ford.<\/em><\/span><\/p>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00cdrta: Sandra Henry-Stocker Szerkesztette Hazai, G\u00e9za Az eredeti cikk: Setting limits with ulimit 2012. november 18. Egy Unix szerver adminisztr\u00e1l\u00e1sa kih\u00edv\u00e1s lehet, k\u00fcl\u00f6n\u00f6sen akkor, ha az \u00e1ltalad menedzselt rendszert er\u0151sen ig\u00e9nybe veszik \u00e9s a teljes\u00edtm\u00e9nybeli probl\u00e9m\u00e1k cs\u00f6kkentik a haszn\u00e1lhat\u00f3s\u00e1got. Szerencs\u00e9re &hellip; <a href=\"http:\/\/pclos.janu.hu\/?p=1342\">Egy kattint\u00e1s ide a folytat\u00e1shoz&#8230;. <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51],"tags":[55,197],"class_list":["post-1342","post","type-post","status-publish","format-standard","hentry","category-egyeb-irasok","tag-2012-magazin","tag-rendszer"],"_links":{"self":[{"href":"http:\/\/pclos.janu.hu\/index.php?rest_route=\/wp\/v2\/posts\/1342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/pclos.janu.hu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pclos.janu.hu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pclos.janu.hu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/pclos.janu.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1342"}],"version-history":[{"count":2,"href":"http:\/\/pclos.janu.hu\/index.php?rest_route=\/wp\/v2\/posts\/1342\/revisions"}],"predecessor-version":[{"id":1344,"href":"http:\/\/pclos.janu.hu\/index.php?rest_route=\/wp\/v2\/posts\/1342\/revisions\/1344"}],"wp:attachment":[{"href":"http:\/\/pclos.janu.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pclos.janu.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1342"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pclos.janu.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}