переход с memcachedb на tarantool

404 views
Skip to first unread message

Евгений Шершень

unread,
Jan 6, 2013, 7:37:56 AM1/6/13
to tarant...@googlegroups.com
Есть два относительно нагруженных проекта
нагрузка  на  web-сервера(haproxy->nginxы->php-fpm) 300-500 rps   и во времена пиковой нагрузки бывает ловлю

MemcachePool::set(): Server 192.168.0.101 (tcp 7777, udp 0) failed with: Network timeout (0) in /var/www/mtaxi_server_new/dbcachev2.php on
и на get тоже самое
в memcachedb храню  инфу клиентов(часто меняется -  демон каждые 5 минут апдейтит 4000 клиентов), сессии, и около 1000 записей которые меняются каждую секунду

Вопросы
Можно ли использывать tarantool как memcachdb не меняя кода, или лучше переписать эти участки с использыванием функций php-tarantool и какой будет от этого плюс?
Я так понимаю в моем случае кроме
space[0].enabled = 1
space[0].index[0].type = "HASH"
space[0].index[0].unique = 1
space[0].index[0].key_field[0].fieldno = 0
space[0].index[0].key_field[0].type = "STR"
больше ничего не нужно?




Max Lapshin

unread,
Jan 6, 2013, 8:03:17 AM1/6/13
to tarant...@googlegroups.com
У меня вам сразу вопрос, который может и покажется глупым: а соединение то персистентное? 300 rps для БД в памяти — это ни о чём.


2013/1/6 Евгений Шершень <vamp...@gmail.com>

Евгений Шершень

unread,
Jan 6, 2013, 8:32:53 AM1/6/13
to tarant...@googlegroups.com
да использую pconnect, где-то читал что лучше ипользовать memcached клиент вместо memcache

Konstantin Osipov

unread,
Jan 7, 2013, 4:47:50 AM1/7/13
to tarant...@googlegroups.com
* Евгений Шершень <vamp...@gmail.com> [13/01/06 21:29]:
> Вопросы
> Можно ли использывать tarantool как memcachdb не меняя кода

Можно, если в мемкеш ходите по текстовому протоколу.

Будет небольшое отличие в поведении expire, в остальном должен
работать ОК.

> или лучше
> переписать эти участки с использыванием функций php-tarantool и какой будет
> от этого плюс?

Тогда придётся и написать ещё свой expire, либо взять какой-то наш
из репозитория tntlua.

> Я так понимаю в моем случае кроме
> space[0].enabled = 1
> space[0].index[0].type = "HASH"
> space[0].index[0].unique = 1
> space[0].index[0].key_field[0].fieldno = 0
> space[0].index[0].key_field[0].type = "STR"
> больше ничего не нужно?

Настроить expire. memcached expire работает только для memcached
данных.

--
http://tarantool.org - an efficient, extensible in-memory data store
Message has been deleted
Message has been deleted

Евгений Шершень

unread,
Jan 7, 2013, 9:32:20 AM1/7/13
to tarant...@googlegroups.com
в MemcacheDB expire не работает и я им не пользуюсь. Меня интересует по быстродействию/стабильности какой клиент лучше  использовать, родной php-tarantool или php-memcache/memcached?

Dmitry E. Oboukhov

unread,
Jan 7, 2013, 9:40:08 AM1/7/13
to tarant...@googlegroups.com
> в MemcacheDB expire не работает и я им не пользуюсь. Меня интересует по
> быстродействию/стабильности какой клиент лучше ипользывать родной php-tarantool
> или php-memcache/memcached?

для memcached-протокола будет бенчмаркать примерно одинаково, вопрос
тут только в том что если вы будете юзать php-tarantool, то скорее
всего вам придется код который работает с мемкешом переписать ибо он
будет несовместим с memcached.

ну а в этом случае скорее всего memcached функции лучше просто не
юзать, а юзать как тарантул
--

. ''`. Dmitry E. Oboukhov
: :’ : email: un...@debian.org jabber://UN...@uvw.ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
signature.asc

Konstantin Osipov

unread,
Jan 7, 2013, 1:33:56 PM1/7/13
to tarant...@googlegroups.com
* Евгений Шершень <vamp...@gmail.com> [13/01/07 22:29]:
> В MemcacheDB expire вообще не работает и я им не пользуюсь. Мне интересно
> по скорости работы какой клиент будет лучше родной

Я думаю разницы особой не будет.

Разница начинает быть заметной на хотя бы 100-200k RPS (наш клиент
быстрее).

Konstantin Osipov

unread,
Jan 7, 2013, 1:34:54 PM1/7/13
to tarant...@googlegroups.com
* Евгений Шершень <vamp...@gmail.com> [13/01/07 22:29]:
> в MemcacheDB expire не работает и я им не пользуюсь. Меня интересует по
> быстродействию/стабильности какой клиент лучше ипользывать родной
> php-tarantool или php-memcache/memcached?

php-tarantool довольно сырой. у mail.ru с php беда :(
на мне висит бага в клиенте с прошлого года, думаю через два-три
дня зафикшу.

Евгений Шершень

unread,
Jan 8, 2013, 8:30:17 AM1/8/13
to tarant...@googlegroups.com
запустил сегодня небольшое тестирование 20 запросов в секунду к бекенду и примерно через 40 минут работы отвалился коннект к тарантулу. клиент php-memcache   куда копнуть подскажите?

Dmitry E. Oboukhov

unread,
Jan 8, 2013, 8:33:29 AM1/8/13
to tarant...@googlegroups.com
> запустил сегодня небольшое тестирование 20 запросов в секунду к бекенду и
> примерно через 40 минут работы отвалился коннект к тарантулу. клиент
> php-memcache куда копнуть подскажите?

прежде всего в логи тарантула
потом хорошо бы пологгировать самого клиента

PS: а какая версия тарантула использовалась в тестах?
signature.asc

Евгений Шершень

unread,
Jan 8, 2013, 8:34:22 AM1/8/13
to tarant...@googlegroups.com
в syslog обнаружил следущее

Jan  8 15:21:42 debian kernel: [349850.006954] tarantool_box[15758]: segfault at 1 ip 08084702 sp 36263cb0 error 4 in tarantool_box[8048000+bc000]

версия tarantool 1.4.6 из вашего репозитория для дебиан

Konstantin Osipov

unread,
Jan 8, 2013, 10:39:16 AM1/8/13
to tarant...@googlegroups.com
* Евгений Шершень <vamp...@gmail.com> [13/01/08 18:37]:
> Jan 8 15:21:42 debian kernel: [349850.006954] tarantool_box[15758]:
> segfault at 1 ip 08084702 sp 36263cb0 error 4 in
> tarantool_box[8048000+bc000]


Уверены что взяли тот что нужно (64битный, к примеру)?

> версия tarantool 1.4.6 из вашего репозитория для дебиан
Какой-то очень древний сервер.

Евгений Шершень

unread,
Jan 9, 2013, 3:46:07 AM1/9/13
to tarant...@googlegroups.com
поставил версию 1.4.8  не падает, но другая проблемка после перезапуска машины куда-то пропали данные которые там хранились хотя expire я не выставлял.
вот конфиг
configuration:
  username: (null)
  local_hot_standby: "false"
  bind_ipaddr: "INADDR_ANY"
  coredump: "false"
  admin_port: "33015"
  replication_port: "0"
  log_level: "4"
  slab_alloc_arena: "0.1"
  slab_alloc_minimal: "64"
  slab_alloc_factor: "2"
  work_dir: (null)
  snap_dir: "."
  wal_dir: "."
  script_dir: "/usr/share/tarantool/lua/"
  pid_file: "/var/run/tarantool/example.pid"
  logger: "exec /usr/lib/tarantool/logger /var/log/tarantool/example.log"
  logger_nonblock: "true"
  io_collect_interval: "0"
  backlog: "1024"
  readahead: "16320"
  snap_io_rate_limit: "0"
  rows_per_wal: "50000"
  wal_writer_inbox_size: "16384"
  wal_mode: "fsync_delay"
  wal_fsync_delay: "0"
  wal_dir_rescan_delay: "0.1"
  panic_on_snap_error: "true"
  panic_on_wal_error: "false"
  primary_port: "33013"
  secondary_port: "33014"
  too_long_threshold: "0.5"
  custom_proc_title: (null)
  memcached_port: "7777"
  memcached_space: "23"
  memcached_expire: "false"
  memcached_expire_per_loop: "1024"
  memcached_expire_full_sweep: "3600"
  replication_source: (null)
  space[0].enabled: "true"
  space[0].cardinality: "-1"
  space[0].estimated_rows: "0"
  space[0].index[0].type: "HASH"
  space[0].index[0].unique: "true"
  space[0].index[0].key_field[0].fieldno: "0"
  space[0].index[0].key_field[0].type: "STR"

Konstantin Osipov

unread,
Jan 9, 2013, 4:32:57 AM1/9/13
to tarant...@googlegroups.com
* Евгений Шершень <vamp...@gmail.com> [13/01/09 12:47]:

Данные никуда деться не могли - WAL включён.

> work_dir: (null)
> snap_dir: "."
> wal_dir: "."
> wal_mode: "fsync_delay"

Они должны где-то лежать - поищите *.xlog файлы.

Как-то странно что work_dir - null.

Евгений Шершень

unread,
Jan 9, 2013, 5:33:51 AM1/9/13
to tarant...@googlegroups.com
а можно как то чистить  *.xlog ? к примеру в memcachedb  они чистились командами
db_checkpoint
db_archive
и чекпоинт часто вешал базу на пару минут (если очень редко его делать), как обстоят дела  у tarantool?

Konstantin Osipov

unread,
Jan 9, 2013, 6:24:38 AM1/9/13
to tarant...@googlegroups.com

Можно удалять старые логи после save snapshot - можно удалить все файлы кроме последнего.

Reply all
Reply to author
Forward
0 new messages