sprawdź silnik pamięci masowej z powłoki


35

Aktualizuję do wersji 3.0 i napotkałem problemy z aktualizacją. Konkretnie mam błąd podczas próby uruchomienia mongodprzez sshto próbował użyć domyślnego dbpathzamiast jednej I określonym w moim nowym pliku konfiguracyjnym YAML. Poszedłem do przodu i ponownie uruchomiłem maszynę, a teraz mongodznów działa. W tym momencie jestem trochę paranoikiem i chciałbym wiedzieć, czy istnieje sposób, aby upewnić się, że silnik pamięci masowej pochodzi wiredtigerz powłoki.

Odpowiedzi:


61

Najłatwiejszy sposób na znalezienie aktualnie używanego silnika pamięci masowej.

Wewnątrz typu konsoli mongo

db.serverStatus().storageEngine

Zwraca aktualnie używany silnik pamięci

{ "name" : "wiredTiger" }

Po potwierdzeniu, że używany jest wiredTiger, wpisz

db.serverStatus().wiredTiger

aby uzyskać wszystkie szczegóły konfiguracji wiredTiger.


2
Aby to potwierdzić, działa to również w systemie Windows.
Chris Paton,

9

ZASTRZEŻENIE: Nie jest ekspertem MongoDB

Sprawdź listę procesów w systemie Linux

WIREDTIGER_CONFIGURED=`ps -ef|grep mongod|grep -i storageengine|grep -ic wiredtiger`
echo ${WIREDTIGER_CONFIGURED}

1 oznacza, że ​​tam jest

Z muszli mangowej

db.serverStatus()

Powinieneś zobaczyć coś takiego

"wiredTiger" : {
   ...
   "cache" : {
      "tracked dirty bytes in the cache" : <num>,
      "bytes currently in the cache" : <num>,
      "maximum bytes configured" : <num>,
      "bytes read into cache" :<num>,

lub możesz po prostu wyciągnąć nazwę silnika pamięci

db.serverStatus().storageEngine.name

Będziesz albo dostać mmapv1lubwiredTiger

lub z linii poleceń

MONGO_ENGINE=`mongo -u... -p... --eval "db.serverStatus().storageEngine.name"`

Jestem na Ubuntu, więc wypróbowałem komendę Linux i pokazała 0, ale db.serverStatus () pokazuje węzeł wiredTiger.
ton.yeung

cóż, tak czy inaczej, db.serverStatus jest zachęcający. dzięki temu zaktualizuję pozostałe serwery i wystawię bilet z mongo, by uzyskać ostateczną odpowiedź.
ton.yeung

Czy to ma jakieś aktualizacje? Nadal dostaję 0, kiedy to uruchamiam.
chaitanya.varanasi

2
@ chaitanya.varanasi Proszę spojrzeć na drugą odpowiedź. Ma to, czego chcesz. Dla jasności powiem: Jeśli korzystasz z MongoDB 3.x, po prostu uruchom db.serverStatus().storageEngine.name. Powie albo mmapv1albo wiredTiger.
RolandoMySQLDBA

Grepping dla --storageEngineparametru działa tylko w ograniczonych sytuacjach, np. MongoDB 3.0, gdzie parametr jest jawnie podany w linii poleceń. Zazwyczaj mongodwartości konfiguracyjne są dostarczane w pliku konfiguracyjnym, więc nie pojawią się na pswyjściu. W MongoDB 3.2+ WiredTiger jest domyślnym silnikiem pamięci, więc nie jest wymagany żaden dodatkowy parametr. Zalecane podejście do użytku to druga sugestia db.serverStatus().storageEngine.namepoprzez mongopowłokę. Do Twojej wiadomości, jeśli używasz MongoDB 2.6 lub starszej, to nie zadziała: jedynym silnikiem pamięci był MMAP.
Stennie,

1

mongod.logPlik zostanie wypełniona przez ciąg, który opisuje, co silnik składowania używasz;
abyś mógł uruchomić:

cat /var/log/mongodb/mongod.log  | grep STORAGE | tail -n 1

co zwraca coś takiego:

2017-06-28T21:45:24.745+0200 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=4G,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.