• Ночью сервер перестаёт отвечать, в kvm видно Unit systemd-journald.service entered failed state, как найти причину?

    VladimirMerk
    @VladimirMerk Автор вопроса
    sim3x,
    /var/log/syslog начало сбоя, там ещё 200 таких строк
    /var/log/syslog
    Sep 1 00:26:49 /usr/sbin/irqbalance: irq 133 affinity_hint subset empty
    Sep 1 00:28:57 kernel: [143516.846447] INFO: task loop1:2683 blocked for more than 120 seconds.
    Sep 1 00:28:57 kernel: [143516.846498] Not tainted 3.16.0-4-amd64 #1
    Sep 1 00:28:57 kernel: [143516.846536] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    Sep 1 00:28:57 kernel: [143516.846603] loop1 D ffff880ffd72eff8 0 2683 2 0x00000000
    Sep 1 00:28:57 kernel: [143516.846658] ffff880ffd72eba0 0000000000000046 0000000000012f40 ffff880fc82dbfd8
    Sep 1 00:28:57 kernel: [143516.846743] 0000000000012f40 ffff880ffd72eba0 ffff880ffd5b5800 00000000326417be
    Sep 1 00:28:57 kernel: [143516.846827] ffff880ffd5b5888 ffff880ffd5b5824 ffff880fc82dbda8 ffff880ffd5b58a0
    Sep 1 00:28:57 kernel: [143516.846913] Call Trace:
    Sep 1 00:28:57 kernel: [143516.846972] [<ffffffffa01007d5>] ? jbd2_log_wait_commit+0x95/0x100 [jbd2]
    Sep 1 00:28:57 kernel: [143516.847020] [<ffffffff810a9610>] ? prepare_to_wait_event+0xf0/0xf0
    Sep 1 00:28:57 kernel: [143516.847070] [<ffffffffa03307e1>] ? ext4_sync_file+0x2c1/0x350 [ext4]
    Sep 1 00:28:57 kernel: [143516.847115] [<ffffffffa04f0260>] ? loop_thread+0x390/0x720 [loop]
    Sep 1 00:28:57 kernel: [143516.847170] [<ffffffffa04ef830>] ? __do_lo_send_write+0x110/0x110 [loop]
    Sep 1 00:28:57 kernel: [143516.847214] [<ffffffff810a9610>] ? prepare_to_wait_event+0xf0/0xf0
    Sep 1 00:28:57 kernel: [143516.847258] [<ffffffffa04efed0>] ? loop_control_ioctl+0x140/0x140 [loop]
    Sep 1 00:28:57 kernel: [143516.847304] [<ffffffff8108954d>] ? kthread+0xbd/0xe0
    Sep 1 00:28:57 kernel: [143516.847345] [<ffffffff81089490>] ? kthread_create_on_node+0x180/0x180
    Sep 1 00:28:57 kernel: [143516.847391] [<ffffffff8151a3d8>] ? ret_from_fork+0x58/0x90
    Sep 1 00:28:57 kernel: [143516.847433] [<ffffffff81089490>] ? kthread_create_on_node+0x180/0x180
    Sep 1 00:28:57 kernel: [143516.847481] INFO: task jbd2/dm-1-8:3785 blocked for more than 120 seconds.
    Sep 1 00:28:57 kernel: [143516.847524] Not tainted 3.16.0-4-amd64 #1
    Sep 1 00:28:57 kernel: [143516.847562] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    Sep 1 00:28:57 kernel: [143516.847629] jbd2/dm-1-8 D ffff880fbd6a7808 0 3785 2 0x00000000
    Sep 1 00:28:57 kernel: [143516.847681] ffff880fbd6a73b0 0000000000000046 0000000000012f40 ffff880fa6a13fd8
    Sep 1 00:28:57 kernel: [143516.847766] 0000000000012f40 ffff880fbd6a73b0 ffff88203f2b37f0 ffff88203ffe9db0
    Sep 1 00:28:57 kernel: [143516.847851] 0000000000000002 ffffffff8113f030 ffff880fa6a13b40 ffff880fa6a13db0
    Sep 1 00:28:57 kernel: [143516.847935] Call Trace:
    Sep 1 00:28:57 kernel: [143516.847972] [<ffffffff8113f030>] ? wait_on_page_read+0x60/0x60


    /var/log/syslog начало сбоя, и ещё 150 строк после
    /var/log/messages
    Sep  1 00:28:57 kernel: [143516.846603] loop1           D ffff880ffd72eff8     0  2683      2 0x00000000
    Sep  1 00:28:57 kernel: [143516.846658]  ffff880ffd72eba0 0000000000000046 0000000000012f40 ffff880fc82dbfd8
    Sep  1 00:28:57 kernel: [143516.846743]  0000000000012f40 ffff880ffd72eba0 ffff880ffd5b5800 00000000326417be
    Sep  1 00:28:57 kernel: [143516.846827]  ffff880ffd5b5888 ffff880ffd5b5824 ffff880fc82dbda8 ffff880ffd5b58a0
    Sep  1 00:28:57 kernel: [143516.846913] Call Trace:
    Sep  1 00:28:57 kernel: [143516.846972]  [<ffffffffa01007d5>] ? jbd2_log_wait_commit+0x95/0x100 [jbd2]
    Sep  1 00:28:57 kernel: [143516.847020]  [<ffffffff810a9610>] ? prepare_to_wait_event+0xf0/0xf0
    Sep  1 00:28:57 kernel: [143516.847070]  [<ffffffffa03307e1>] ? ext4_sync_file+0x2c1/0x350 [ext4]
    Sep  1 00:28:57 kernel: [143516.847115]  [<ffffffffa04f0260>] ? loop_thread+0x390/0x720 [loop]
    Sep  1 00:28:57 kernel: [143516.847170]  [<ffffffffa04ef830>] ? __do_lo_send_write+0x110/0x110 [loop]
    Sep  1 00:28:57 kernel: [143516.847214]  [<ffffffff810a9610>] ? prepare_to_wait_event+0xf0/0xf0
    Sep  1 00:28:57 kernel: [143516.847258]  [<ffffffffa04efed0>] ? loop_control_ioctl+0x140/0x140 [loop]
    Sep  1 00:28:57 kernel: [143516.847304]  [<ffffffff8108954d>] ? kthread+0xbd/0xe0
    Sep  1 00:28:57 kernel: [143516.847345]  [<ffffffff81089490>] ? kthread_create_on_node+0x180/0x180
    Sep  1 00:28:57 kernel: [143516.847391]  [<ffffffff8151a3d8>] ? ret_from_fork+0x58/0x90
    Sep  1 00:28:57 kernel: [143516.847433]  [<ffffffff81089490>] ? kthread_create_on_node+0x180/0x180
    Sep  1 00:28:57 kernel: [143516.847629] jbd2/dm-1-8     D ffff880fbd6a7808     0  3785      2 0x00000000
    Sep  1 00:28:57 kernel: [143516.847681]  ffff880fbd6a73b0 0000000000000046 0000000000012f40 ffff880fa6a13fd8
    Sep  1 00:28:57 kernel: [143516.847766]  0000000000012f40 ffff880fbd6a73b0 ffff88203f2b37f0 ffff88203ffe9db0
    Sep  1 00:28:57 kernel: [143516.847851]  0000000000000002 ffffffff8113f030 ffff880fa6a13b40 ffff880fa6a13db0
    Sep  1 00:28:57 kernel: [143516.847935] Call Trace:
    Sep  1 00:28:57 kernel: [143516.847972]  [<ffffffff8113f030>] ? wait_on_page_read+0x60/0x60
    Sep  1 00:28:57 kernel: [143516.848015]  [<ffffffff81516f59>] ? io_schedule+0x99/0x120
    Sep  1 00:28:57 kernel: [143516.848056]  [<ffffffff8113f03a>] ? sleep_on_page+0xa/0x10
    Sep  1 00:28:57 kernel: [143516.848097]  [<ffffffff815172dc>] ? __wait_on_bit+0x5c/0x90
    Sep  1 00:28:57 kernel: [143516.848138]  [<ffffffff8113ee36>] ? wait_on_page_bit+0xc6/0xd0
    Sep  1 00:28:57 kernel: [143516.848180]  [<ffffffff810a9640>] ? autoremove_wake_function+0x30/0x30
    Sep  1 00:28:57 kernel: [143516.848226]  [<ffffffff8114c82d>] ? pagevec_lookup_tag+0x1d/0x30
    Sep  1 00:28:57 kernel: [143516.848349]  [<ffffffff8114a092>] ? write_cache_pages+0x2a2/0x420
    Sep  1 00:28:57 kernel: [143516.848392]  [<ffffffff811496f0>] ? global_dirtyable_memory+0x50/0x50
  • Ночью сервер перестаёт отвечать, в kvm видно Unit systemd-journald.service entered failed state, как найти причину?

    VladimirMerk
    @VladimirMerk Автор вопроса
    sim3x, я понимаю что не всё нужно) Всё равно не лезет.
    node_exporter это кусок prometheus, а он в свою очередь является частью redis-server
  • Ночью сервер перестаёт отвечать, в kvm видно Unit systemd-journald.service entered failed state, как найти причину?

    VladimirMerk
    @VladimirMerk Автор вопроса
    vlarkanov, Да, бэкапы архивируется где-то в это время, но раньше с этим проблем не было.
  • Ночью сервер перестаёт отвечать, в kvm видно Unit systemd-journald.service entered failed state, как найти причину?

    VladimirMerk
    @VladimirMerk Автор вопроса
    sim3x, не влезают существенные вещи ни в вопрос, ни в комментарий, 10к ограничение
    Добавил syslog в вопрос, но тоже через диск

    ATOP продолжает работать даже во время сбоя

    Вывод atop за 10 минут до сбоя
    5d6cf4c14f2e8138643347.png

    Вывод atop через 1 минуту после сбоя
    5d6cf4e376289162836608.png

    Вывод atop через 10 минут после сбоя
    5d6cf4ff16f40736814278.png
  • Ночью сервер перестаёт отвечать, в kvm видно Unit systemd-journald.service entered failed state, как найти причину?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Да, места полно и на основном разделе и на всех остальных. Нашёл в /var/log/messages строки такого формата в момент сбоя
    Sep 1 00:28:57 kernel: [143516.846603] loop1 D ffff880ffd72eff8 0 2683 2 0x00000000

    добавил полный вывод в вопрос. Но яснее не стало, мне это ничего не говорит
  • Ночью сервер перестаёт отвечать, в kvm видно Unit systemd-journald.service entered failed state, как найти причину?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Да, задания конечно есть, но раньше всё работало и с ними
  • Не запускается postgresql в debian. Как запустить?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Copmi Box Именно из этого репозитория ставлю, с оф.сайта
  • Не запускается postgresql в debian. Как запустить?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Андрей:
    Попробуйте удалить постгрес полностью, те с pure

    Уже несколько раз пробовал(

    Удаляю postgresql
    apt-get --purge remove postgresql\*

    Удаляю юзера и группу
    userdel -r postgres
    groupdel postgres


    Удаляю все оставшиеся пути
    rm -r /var/lib/postgresql/
    rm -r /etc/postgresql-common/
    rm -r /etc/postgresql/


    Устанавливаю:
    sudo apt-get install postgresql postgresql-contrib

    В процессе установки получаю ошибки:
    Ошибки
    "root" execution of the PostgreSQL server is not permitted.
    The server must be started under an unprivileged user ID to prevent
    possible system security compromise.  See the documentation for
    more information on how to properly start the server.
    child process exited with exit code 1
    initdb: removing contents of data directory "/var/lib/postgresql/9.6/main"
    Error: initdb failed
    Error: could not create default cluster. Please create it manually with
    
      pg_createcluster 9.6 main --start


    Запускаю
    su -l postgres -c 'pg_createcluster 9.6 main --start'


    Получаю ошибки путей и прав:
    Ошибки
    install: cannot change owner and permissions of `/etc/postgresql/9.6': No such file or directory
    install: cannot create directory `/etc/postgresql/9.6': Permission denied
    Error: could not create configuration directory; you might need to run this program with root privileges


    Да, кстати, очень странно что он сам всё это не создаёт. В итоге я в ручную создаю эти пути и выставляю права и после всего этого всё начинается с начала, т.е. "root" execution of the PostgreSQL server is not permitted. (

    Пробовал явно указать юзера и файл логов:
    su -l postgres -c 'pg_createcluster 9.6 main --logfile=/var/log/psql.log --user=postgres --group=postgres --start'

    Файл лога остаётся пустым, ошибка та же.
  • Не запускается postgresql в debian. Как запустить?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Андрей: Вывод id postgres
    uid=106(postgres) gid=115(postgres) groups=115(postgres),108(ssl-cert)
  • Не запускается postgresql в debian. Как запустить?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Андрей: Ошибка всё та же, логов по прежнему нет, но к выводу добавились значения переменных:

    Вывод
    Running in debug mode.
    The files belonging to this database system will be owned by user "postgres".
    This user must also own the server process.
    
    VERSION=9.6.2
    PGDATA=/var/lib/postgresql/9.6/main
    share_path=/usr/share/postgresql/9.6
    PGPATH=/usr/lib/postgresql/9.6/bin
    POSTGRES_SUPERUSERNAME=postgres
    POSTGRES_BKI=/usr/share/postgresql/9.6/postgres.bki
    POSTGRES_DESCR=/usr/share/postgresql/9.6/postgres.description
    POSTGRES_SHDESCR=/usr/share/postgresql/9.6/postgres.shdescription
    POSTGRESQL_CONF_SAMPLE=/usr/share/postgresql/9.6/postgresql.conf.sample
    PG_HBA_SAMPLE=/usr/share/postgresql/9.6/pg_hba.conf.sample
    PG_IDENT_SAMPLE=/usr/share/postgresql/9.6/pg_ident.conf.sample
    The database cluster will be initialized with locale "en_US.UTF-8".
    The default database encoding has accordingly been set to "UTF8".
    The default text search configuration will be set to "english".


    Весь остальной вывод такой же как и до этого. Прошёлся по этим путям, проверил права для юзера postgress, на все эти пути проставил, чтобы наверняка, но не помогло.
  • Не запускается postgresql в debian. Как запустить?

    VladimirMerk
    @VladimirMerk Автор вопроса
    freeExec: Пробовал для pg_createcluster добавлять ключ --locale en_US.UTF-8
    Пробовал запускать initdb с ключами initdb --pgdata=/var/lib/postgresql/9.6/main -E 'UTF-8' --lc-collate='en_US.UTF-8' --lc-ctype='en_US.UTF-8'
    Ни на что не повлияло. Ошибки всё те же:
    "root" execution of the PostgreSQL server is not permitted.
    и
    running bootstrap script ... "root" execution of the PostgreSQL server is not permitted.
  • Не запускается postgresql в debian. Как запустить?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Fixid: Нет. Очень нежелательно.
  • Не запускается postgresql в debian. Как запустить?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Андрей :
    Та же история running bootstrap script ... "root" execution of the PostgreSQL server is not permitted.
    Вот вывод:
    Вывод
    postgres:/$ initdb -D /var/lib/postgresql/9.6/main
    The files belonging to this database system will be owned by user "postgres".
    This user must also own the server process.
    
    The database cluster will be initialized with locale "en_US.UTF-8".
    The default database encoding has accordingly been set to "UTF8".
    The default text search configuration will be set to "english".
    
    Data page checksums are disabled.
    
    fixing permissions on existing directory /var/lib/postgresql/9.6/main ... ok
    creating subdirectories ... ok
    selecting default max_connections ... 10
    selecting default shared_buffers ... 400kB
    selecting dynamic shared memory implementation ... posix
    creating configuration files ... ok
    running bootstrap script ... "root" execution of the PostgreSQL server is not permitted.
    The server must be started under an unprivileged user ID to prevent
    possible system security compromise.  See the documentation for
    more information on how to properly start the server.
    child process exited with exit code 1
    initdb: removing contents of data directory "/var/lib/postgresql/9.6/main"

  • Не запускается postgresql в debian. Как запустить?

    VladimirMerk
    @VladimirMerk Автор вопроса
    sim3x: Под запустить подразумевается - возможность работать с посгрессом как с субд, возможность работать с новой базой. Запуск демона, прослушивание дефолтного порта 5432.

    Какая ос и версия ос?

    Debian GNU/Linux 7.8 (wheezy)
  • Не запускается postgresql в debian. Как запустить?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Fixid: Да, конечно. Не под рутом - вот вывод:

    Creating new cluster 9.6/main ...
      config /etc/postgresql/9.6/main
      data   /var/lib/postgresql/9.6/main
      locale en_US.UTF-8
    "root" execution of the PostgreSQL server is not permitted.
    The server must be started under an unprivileged user ID to prevent
    possible system security compromise.  See the documentation for
    more information on how to properly start the server.
    child process exited with exit code 1
    initdb: removing contents of data directory "/var/lib/postgresql/9.6/main"
    Error: initdb failed
  • Не запускается postgresql в debian. Как запустить?

    VladimirMerk
    @VladimirMerk Автор вопроса
    sim3x: Ему не нужно работать из под рута) Ему бы хоть как то заработать. Я пытался запускать его из под юзера postgres который создаётся после установки, пробовал его запустить просто из под юзера не-рута, но он всё равно ругается на то, что не может работать под рутом. Пробовал через su postgres, пробовал залогинившись в терминале под юзером postgres
  • Как реализовать многопоточное обновление данных без конфликтов?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Дмитрий: Да, действительно, что-то я натупил) Решение вопроса нашёл, но интересно было бы обсудить вариант с лимитами. Я вижу здесь 2 проблемы. Если выйти за условия вопроса и обратиться к реальной задаче, для которой мне это необходимо, то получается что изначально я не знаю ни количество работающих в данный момент скриптов, ни количество данных в таблице. Количество работающих скриптов конечно мы можем узнать, как и количество данных перед началом выборки, но они меняются каждый момент. Например скрипт запускается, смотрит, что сейчас работает 29 скриптов и он 30. Смотрит количество строк в таблице, например 90. 90/30=3. Получается что он считает что его безопасный диапазон - 87-90 и делает выборку из него, но условие в него не попадет. Это первое. Второе - запускается 31 скрипт, у него безопасный диапазон выйдет тот же. Это всё проблемы не самого способа даже, а определения его безопасного диапазона на основе динамических данных. Или я ничего не понял :D
  • Как реализовать многопоточное обновление данных без конфликтов?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Александр Аксентьев: Спасибо за наводку. Удалось всё сделать при помощи SELECT FOR UPDATE. Раз mysql не умеет игнорировать залоченные данные, решил ему в этом помочь и всё получилось) Если интересно, вариант решения в апдейте вопроса.
  • Как реализовать многопоточное обновление данных без конфликтов?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Александр Аксентьев: Собственно задача не слишком и странная. Если смотреть не тест, а реальную задачу, то это 2 сервера с репликацией бд и на слейве делается выборка, а затем обновление отправляется на мастер. Отсюда и задержка. И есть необходимость выбирать определенные строки не более n-раз, конечно по более сложному условию.
  • Как реализовать многопоточное обновление данных без конфликтов?

    VladimirMerk
    @VladimirMerk Автор вопроса
    Александр Аксентьев: Да, я понял что чисто mysql'ем это не сделать. Но чисто на нём это реализовывать не обязательно в моем случае. От него мне нужны только данные, а логику можно хоть на что повесить. Как раз по этому поводу у меня недостаток идей) Вариант с хранением дополнительных счетчиков в файлах казался хорошим решением, но приходится раз за разом перебирать одни и те же строки, проверяя, есть для них файл или нет, так что тоже фарш ещё тот выходит.