Как мне запустить MongoDB на машине NUMA?

Я просто пытался создать сочувствие от Maverick для Lucid, но это невозможно из-за неудовлетворенных зависимостей построения. Самое простое другое решение, о котором я могу думать, это просто установить пакет Maverick с помощью apt и использовать фиксацию, чтобы максимально снизить влияние на вашу систему. Это потребует обновления GTK + и некоторых других компонентов системы, но это не так уж плохо и отлично работает для меня. YMMV, хотя, я не отвечаю, если вы нарушите вашу систему

Вот как я только что сделал это

Откройте /etc/apt/sources.list, а также добавить источники Maverick в нижней части. [D0!]. : [ ! d4]

deb http://archive.ubuntu.com/ubuntu maverick main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu maverick main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu maverick-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu maverick-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu maverick-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu maverick-security main restricted universe multiverse

(или используйте ваше предпочтительное зеркало). Пока ничего не делайте. Далее мы откроем файл склонный пиннинга /etc/apt/preferences и сказать, склонны не устанавливать пакеты из Maverick (см man apt_preferences для более):

Package: *
Pin: release a=maverick
Pin-Priority: 1

Теперь запустите aptitude update, чтобы получить пакет [d5!] индексы из этих новых источников, которые вы только что добавили. Следующий вызов aptitude install empathy/maverick-updates, чтобы дать указание aptitude явно вытащить пакет из Maverick вместо Lucid (по умолчанию). уместность скажет вам, что хочет обновить несколько пакетов от Maverick:

Upgrade the following packages:
gconf2 [2.28.1-0ubuntu1 (lucid, now) -> 2.31.91-0ubuntu3.1 (maverick-updates)]
gnome-icon-theme [2.28.0-1ubuntu1 (lucid, now) -> 2.31.0-0ubuntu1 (maverick)]
libdbus-glib-1-2 [0.84-1 (lucid, now) -> 0.88-2 (maverick)]
libdbusmenu-glib1 [0.2.9-0ubuntu3.1 (lucid-updates, now) -> 0.3.16-0ubuntu1 (maverick)]
libgail18 [2.20.1-0ubuntu2 (lucid-updates, now) -> 2.22.0-0ubuntu1 (maverick)]
libglib2.0-0 [2.24.1-0ubuntu1 (lucid-updates, now) -> 2.26.0-0ubuntu1 (maverick)]
libgtk2.0-0 [2.20.1-0ubuntu2 (lucid-updates, now) -> 2.22.0-0ubuntu1 (maverick)]
libgtk2.0-bin [2.20.1-0ubuntu2 (lucid-updates, now) -> 2.22.0-0ubuntu1 (maverick)]
libnotify1 [0.4.5-1ubuntu4 (lucid-updates, now) -> 0.5.0-2ubuntu1 (maverick)]
librsvg2-2 [2.26.3-0ubuntu1 (lucid-updates, now) -> 2.32.0-0ubuntu1 (maverick)]
librsvg2-common [2.26.3-0ubuntu1 (lucid-updates, now) -> 2.32.0-0ubuntu1 (maverick)]
libsqlite3-0 [3.6.22-1 (lucid, now) -> 3.7.2-1 (maverick)]
libtelepathy-glib0 [0.10.1-1ubuntu2 (lucid, now) -> 0.12.0-0ubuntu1 (maverick)]
nautilus-sendto-empathy [2.30.3-0ubuntu1 (lucid-updates, now) -> 2.32.1-0ubuntu1 (maverick-updates)]

Согласитесь, если вы не думаете, что это так уж плохо (как я уже говорил, работал для меня), и вы В конце концов, вы получите новую эмпатию.

Удачи!

1
задан 16 May 2013 в 15:38

3 ответа

для ubuntu 16.04 Файл mongod.service должен выглядеть как

[Unit]
Description=High-performance, schema-free document-oriented database
After=time-sync.target network.target

[Service]
Type=forking
User=mongod
Group=mongod
LimitNOFILE=65000
PermissionsStartOnly=true
EnvironmentFile=/etc/default/mongod
ExecStartPre=/usr/bin/percona-server-mongodb-helper.sh
ExecStart=/usr/bin/env bash -c "numactl --interleave=all /usr/bin/mongod $OPTIONS > ${STDOUT} 2> ${STDERR}"
#ExecStart=/usr/bin/env bash -c "/usr/bin/mongod $OPTIONS > ${STDOUT} 2> ${STDERR}"
PIDFile=/var/run/mongod.pid

[Install]
WantedBy=multi-user.target

, и вы также можете указать ограничение nofile с параметром LimitNOFILE

2
ответ дан 24 May 2018 в 22:23

Скрипт upstart Ubuntu MongoDB теперь проверяет наличие двоичного файла numactl и соответственно корректирует его.

Предупреждение NUMA может быть исправлено следующим образом с Ubuntu 14.04 LTS и MongoDB 2.6:

[F1]
0
ответ дан 24 May 2018 в 22:23

Я знаю, что вопрос касается upstart, но на всякий случай кому-то (например, мне) требуется решение init.d:

заменить функцию start_server() в /etc/init.d/mongodb для кода ниже

start_server() {
    test -e "$RUNDIR" || install -m 755 -o mongodb -g mongodb -d "$RUNDIR"

    NUMACTL=$(which numactl)

    if [ ! "$NUMACTL" ]; then
        # start original
        start-stop-daemon --background --start --quiet --pidfile $PIDFILE --make-pidfile --chuid $DAEMONUSER --exec $DAEMON -- $DAEMON_OPTS
        errcode=$?
        return $errcode
    else
        # Start the process using the wrapper
        $NUMACTL --interleave=all -- start-stop-daemon --background --start --quiet --pidfile $PIDFILE --make-pidfile --chuid $DAEMONUSER --exec $DAEMON -- $DAEMON_OPTS
        errcode=$?
        return $errcode
    fi
}
0
ответ дан 24 May 2018 в 22:23

Другие вопросы по тегам:

Похожие вопросы: