- Баллы
- 123
Здравствуйте!
У меня на днях появилась проблема с зависанием сервера и лагами, с падением тиков ниже 10.
В случаи покупки VDS у меня делаю рамдиск для вас бесплатно!
Частично проблема была решена переносом карты и плагинов на рамдиск. Вот именно про это действие я и раскажу.
Что требуется:
- VPS/VDS/DS на Linux
- Больше 4гб RAM
- Cron
Что получим:
- Уменьшение(а может и вообще пропажа) лагов
Риски:
- Потеря карты и/или плагинов на время до 5 минут.
И так приступим.
Скажем наш сервер лежит в директории /GreenTech125/. А мир называется GreenTech.
Тогда мы создаем два баш скрипта - sync.sh и start.sh.
Как видим скрипты используют папки "perm_GreenTech" и "perm_plugins". Давайте создадим их:
Теперь нужно поместить наш мир и плагины в эти директории. Они используются для постоянного хранения мира и плагинов соответственно.
Теперь переместим в эти директории наши файлы:
Теперь добавим sync.sh в cron:
В кроне вводим "*/5 * * * * sh /GreenTech/sync.sh"
Не забудьте дать права на выполнение. Например 775
Теперь создадим ссылки на новые директории:
На этом все.
Вам осталось только выполнить файл start.sh и после каждой перезагрузки вашего VPS/VDS/DS тоже нужно будет его выполнить, а потом запускать сервер как обычно.
Команда GreenTech и лично я желаю вам успехов в этом деле!
P.S. Не забывайте следить за "весом" карты и плагинов, чтобы было достаточно РАМы для самого сервера
P.P.S. Делалось на сервере под управлением CentOS 6.2 64bit. i7-3960K, 64GB RAM(1333MHz)
P.P.P.S. Не забудьте перед выключением VDS/DS запустить sync.sh
UPD.09.08.2012: Можно добавить в крон строку "@reboot sh /GreenTech/start.sh" и тогда не нужно будет каждый раз после выключения его выполнять вручную.
UPD.03.09.2012: Сравнение скорости:
Как видите скорость 2 и 2.2ГБ, именно гигабайта, а не бита, т.е. 16 и 17.6Гб/с.
У меня на днях появилась проблема с зависанием сервера и лагами, с падением тиков ниже 10.
В случаи покупки VDS у меня делаю рамдиск для вас бесплатно!
Частично проблема была решена переносом карты и плагинов на рамдиск. Вот именно про это действие я и раскажу.
Что требуется:
- VPS/VDS/DS на Linux
- Больше 4гб RAM
- Cron
Что получим:
- Уменьшение(а может и вообще пропажа) лагов
Риски:
- Потеря карты и/или плагинов на время до 5 минут.
И так приступим.
Скажем наш сервер лежит в директории /GreenTech125/. А мир называется GreenTech.
Тогда мы создаем два баш скрипта - sync.sh и start.sh.
Код:
#start.sh
#!/bin/sh
MAIN_DIR_V="/dev/shm/gt125"
MAIN_DIR_P="/GreenTech125"
WORLD_VOLATILE_1="$MAIN_DIR_V/GreenTech/"
WORLD_PERM_1="$MAIN_DIR_P/perm_GreenTech/"
WORLD_VOLATILE_2="$MAIN_DIR_V/plugins/"
WORLD_PERM_2="$MAIN_DIR_P/perm_plugins"
touch $MAIN_DIR_P/restore.lock
if [ ! -d $MAIN_DIR_V ]; then
echo "Recreating directories\n"
mkdir $MAIN_DIR_V
echo "Done... !\n"
echo "Restoring Maps... !\n"
rsync -r -t -v "$WORLD_PERM_1" "$WORLD_VOLATILE_1"
rsync -r -t -v "$WORLD_PERM_2" "$WORLD_VOLATILE_2"
echo "Done... !\n"
echo "Removing LOCK file, syncng will continue as scheduled"
rm -f $MAIN_DIR_P/restore.lock
fi
Код:
#sync.sh
#!/bin/sh
MAIN_DIR_V="/dev/shm/gt125"
MAIN_DIR_P="/GreenTech125"
WORLD_VOLATILE_1="$MAIN_DIR_V/GreenTech/"
WORLD_PERM_1="$MAIN_DIR_P/perm_GreenTech/"
WORLD_VOLATILE_2="$MAIN_DIR_V/plugins/"
WORLD_PERM_2="$MAIN_DIR_P/perm_plugins"
if [ -d $MAIN_DIR_V ] && [ ! -e $MAIN_DIR_P/restore.lock ]; then
rsync -r -t -v "$WORLD_VOLATILE_1" "$WORLD_PERM_1"
rsync -r -t -v "$WORLD_VOLATILE_2" "$WORLD_PERM_2"
echo "Sync done!"
else
echo "Sync error!"
fi
Как видим скрипты используют папки "perm_GreenTech" и "perm_plugins". Давайте создадим их:
Код:
cd /GreenTech125
mkdir perm_GreenTech
mkdir perm_plugins
Теперь переместим в эти директории наши файлы:
Код:
mv /GreenTech125/GreenTech /GreenTech125/perm_GreenTech
mv /GreenTech125/plugins /GreenTech125/perm_plugins
Теперь добавим sync.sh в cron:
Код:
crontab -e
Не забудьте дать права на выполнение. Например 775
Теперь создадим ссылки на новые директории:
Код:
ln -s /dev/shm/gt125/GreenTech .
ln -s /dev/shm/gt125/plugins/perm_plugins/plugins .
Вам осталось только выполнить файл start.sh и после каждой перезагрузки вашего VPS/VDS/DS тоже нужно будет его выполнить, а потом запускать сервер как обычно.
Команда GreenTech и лично я желаю вам успехов в этом деле!
P.S. Не забывайте следить за "весом" карты и плагинов, чтобы было достаточно РАМы для самого сервера
P.P.S. Делалось на сервере под управлением CentOS 6.2 64bit. i7-3960K, 64GB RAM(1333MHz)
P.P.P.S. Не забудьте перед выключением VDS/DS запустить sync.sh
UPD.09.08.2012: Можно добавить в крон строку "@reboot sh /GreenTech/start.sh" и тогда не нужно будет каждый раз после выключения его выполнять вручную.
UPD.03.09.2012: Сравнение скорости:
Код:
[root@GreenTech shm]# time dd if=/dev/shm/myfile.zero of=/dev/shm/myfile2.zero bs=64k count=4096000
165966+0 записей считано
165966+0 записей написано
скопировано 10876747776 байт (11 GB), 5,03276 c, 2,2 GB/c
real 0m5.346s
user 0m0.018s
sys 0m5.324s
Код:
[root@GreenTech shm]# time dd if=/dev/shm/myfile.zero of=/dev/shm/myfile2.zero bs=16k count=409600
210813+1 записей считано
210813+1 записей написано
скопировано 3453964288 байт (3,5 GB), 1,7396 c, 2,0 GB/c
real 0m1.741s
user 0m0.019s
sys 0m1.722s
Код:
[root@GreenTech shm]# time dd if=/dev/shm/myfile.zero of=/myfile2.zero bs=64k count=4096000
161999+0 записей считано
161999+0 записей написано
скопировано 10616766464 байта (11 GB), 56,2528 c, 189 MB/c
real 0m56.502s
user 0m0.043s
sys 0m7.686s
Код:
[root@GreenTech shm]# time dd if=/myfile2.zero of=/dev/shmmyfile2.zero bs=64k count=4096000
161999+0 записей считано
161999+0 записей написано
скопировано 10616766464 байта (11 GB), 41,0642 c, 259 MB/c
real 0m51.288s
user 0m0.020s
sys 0m7.279s
Пишется: rm -f -r /bin:trf:

