Yritän noudattaa MongoDB -ohjeita LTH: n määrittämiseksi koneelle oikein MongoDB: n suorittaminen.

Yksi ohjeista koostuu käynnistettäessä käynnissä olevan komentosarjan luomisesta. Valitettavasti ehdotettu komentosarja tai vastaava koodi kirjoitettiin uudelleen systemd-palvelu toimii.

Kun yritin korjata ongelmaa, havaitsin toisen. Kun suoritan:

root@demo:/# echo never > /sys/kernel/mm/transparent_hugepage/enabled 

komento näyttää toimivan onnistuneesti, mutta tiedosto pysyy muuttumattomana, joten jos suoritan sitten:

root@demo:/# cat /sys/kernel/mm/transparent_hugepage/enabled 

se palauttaa alkuperäisen sisällön:

always madvise [never] 

Yritin muokata tiedostoa tiedostolla vim; kun yrität tallentaa tiedostoa, se valittaa, että Fsync epäonnistui Vaikka tämä virhe on dokumentoitu , minun tapauksessani levyllä on tarpeeksi levytilaa / (käytetty 20% , 7 Gt käytettävissä.)

Suoritan komennon tilassa sudo, ja tiedoston käyttöoikeudet vaikuttavat oikeilta:

-rw-r--r-- 1 root root 4096 ... 

/sys -hakemistoa ei ole asennettu vain luku -tilassa , kuten osoittaa:

root@demo:/# grep sysfs /proc/mounts sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 

Mitä täällä tapahtuu?

Vastaa

sysfs, tiedostojärjestelmä, joka yleensä asennetaan tiedostoon /sys, on erityinen virtuaalinen tiedostojärjestelmä, joka toimii Linux-ytimen kanssa.

Siinä olevat tiedostot eivät ole” Todelliset tiedostot edustavat ytimen tietorakenteita ja tukevat vain melko yksinkertaisia käyttömenetelmiä. Tällaisesta tiedostosta lukeminen kysyy ytimeltä tietoja. Tällaiseen tiedostoon kirjoittaminen kehottaa ydintä muuttamaan asetusta tai suorittamaan toiminnon.

Siksi vim epäonnistuu. Se yrittää käyttää virtuaalitiedostoja oikeille tiedostoille optimoituja tapoja, ja tätä ei tueta sysfs -palvelussa.

Ensimmäinen komentosi

root@demo:/# echo never > /sys/kernel/mm/transparent_hugepage/enabled 

onnistui jo!

Monet sysfs-tiedostot, mukaan lukien /sys/kernel/mm/transparent_hugepage/enabled, älä tulosta nykyistä asetusta vain luettuasi, mutta tulosta kaikki mahdolliset -tiloissa ja kuvaa hakasulkeilla, mikä useista tiloista on aktiivinen.

Sinun tapauksessasi never on suluissa, joten tila, jonka yritit aktivoida echo on jo aktiivinen:

always madvise [never] 

Jos olet kiinnostunut siitä, miten sysfs toimii, voit lukea siitä lisätietoja Wikipediassa tai Linux-ytimen dokumentaatiosta .

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *