Подскажите можно ли оптимизировать загрузку форума. Очень медленно грузиться раздел с лс. У некоторых не отправляет личные сообщения и открывается страница с ошибкой 504. Также 504 ошибка наблюдается при загрузке страниц расширений (Страница карты сайта sitemap.xml, PM SPY -> Список ЛС) и некоторых функций в админке (Синхронизировать счётчики сообщений, Синхронизировать свои темы).
База данных около 2Гб
Всего сообщений: 914 469
Всего личных сообщений : 1 741 912
Всего тем: 37 613
Всего пользователей: 44 024
К хостерам обращались!
Их ответ
Ошибки из лога свидетельствуют о том, что скрипты сайта не успели завершить свое выполнение в течении лимита в 300 секунд, который указан на стороне веб-сервера. При этом большая часть времени уходит на выполнение запросов к базе данных вида:
[pid 2602] sendto(5, "G\0\0\0\3UPDATE phpbb_users\n\t\t\tSET user_sig = '<t></t>'\n\t\t\tWHERE user_id = 6893", 75, MSG_DONTWAIT, NULL, 0) = 75
[pid 2602] poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 1471228928) = 1 ([{fd=5, revents=POLLIN}])
[pid 2602] recvfrom(5, "0\0\0\1\0\1\0\"\0\0\0(Rows matched: 1 Changed: 1 Warnings: 0", 3077, MSG_DONTWAIT, NULL, NULL) = 52
[pid 2602] read(6, "\34&\313\371\251\23\3\334", 8) = 8
[pid 2602] sendto(5, "G\0\0\0\3UPDATE phpbb_users\n\t\t\tSET user_sig = '<t></t>'\n\t\t\tWHERE user_id = 6894", 75, MSG_DONTWAIT, NULL, 0) = 75
[pid 2602] poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 1471228928) = 1 ([{fd=5, revents=POLLIN}])
[pid 2602] recvfrom(5, "0\0\0\1\0\1\0\"\0\0\0(Rows matched: 1 Changed: 1 Warnings: 0", 3025, MSG_DONTWAIT, NULL, NULL) = 52
[pid 2602] read(6, "\\\314\331(P<r\317", 8) = 8
[pid 2602] sendto(5, "G\0\0\0\3UPDATE phpbb_users\n\t\t\tSET user_sig = '<t></t>'\n\t\t\tWHERE user_id = 6895", 75, MSG_DONTWAIT, NULL, 0) = 75
[pid 2602] poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 1471228928) = 1 ([{fd=5, revents=POLLIN}])
[pid 2602] recvfrom(5, "0\0\0\1\0\1\0\"\0\0\0(Rows matched: 1 Changed: 1 Warnings: 0", 2973, MSG_DONTWAIT, NULL, NULL) = 52
[pid 2602] read(6, "\256\304\210,\245\206\224\342", 8) = 8
[pid 2602] sendto(5, "G\0\0\0\3UPDATE phpbb_users\n\t\t\tSET user_sig = '<t></t>'\n\t\t\tWHERE user_id = 6896", 75, MSG_DONTWAIT, NULL, 0) = 75
[pid 2602] poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 1471228928) = 1 ([{fd=5, revents=POLLIN}])
[pid 2602] recvfrom(5, "0\0\0\1\0\1\0\"\0\0\0(Rows matched: 1 Changed: 1 Warnings: 0", 2921, MSG_DONTWAIT, NULL, NULL) = 52
Для решения данной ситуации необходимо провести оптимизацию кода и запросов к базе данных.
[pid 2602] sendto(5, "G\0\0\0\3UPDATE phpbb_users\n\t\t\tSET user_sig = '<t></t>'\n\t\t\tWHERE user_id = 6893", 75, MSG_DONTWAIT, NULL, 0) = 75
[pid 2602] poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 1471228928) = 1 ([{fd=5, revents=POLLIN}])
[pid 2602] recvfrom(5, "0\0\0\1\0\1\0\"\0\0\0(Rows matched: 1 Changed: 1 Warnings: 0", 3077, MSG_DONTWAIT, NULL, NULL) = 52
[pid 2602] read(6, "\34&\313\371\251\23\3\334", 8) = 8
[pid 2602] sendto(5, "G\0\0\0\3UPDATE phpbb_users\n\t\t\tSET user_sig = '<t></t>'\n\t\t\tWHERE user_id = 6894", 75, MSG_DONTWAIT, NULL, 0) = 75
[pid 2602] poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 1471228928) = 1 ([{fd=5, revents=POLLIN}])
[pid 2602] recvfrom(5, "0\0\0\1\0\1\0\"\0\0\0(Rows matched: 1 Changed: 1 Warnings: 0", 3025, MSG_DONTWAIT, NULL, NULL) = 52
[pid 2602] read(6, "\\\314\331(P<r\317", 8) = 8
[pid 2602] sendto(5, "G\0\0\0\3UPDATE phpbb_users\n\t\t\tSET user_sig = '<t></t>'\n\t\t\tWHERE user_id = 6895", 75, MSG_DONTWAIT, NULL, 0) = 75
[pid 2602] poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 1471228928) = 1 ([{fd=5, revents=POLLIN}])
[pid 2602] recvfrom(5, "0\0\0\1\0\1\0\"\0\0\0(Rows matched: 1 Changed: 1 Warnings: 0", 2973, MSG_DONTWAIT, NULL, NULL) = 52
[pid 2602] read(6, "\256\304\210,\245\206\224\342", 8) = 8
[pid 2602] sendto(5, "G\0\0\0\3UPDATE phpbb_users\n\t\t\tSET user_sig = '<t></t>'\n\t\t\tWHERE user_id = 6896", 75, MSG_DONTWAIT, NULL, 0) = 75
[pid 2602] poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 1471228928) = 1 ([{fd=5, revents=POLLIN}])
[pid 2602] recvfrom(5, "0\0\0\1\0\1\0\"\0\0\0(Rows matched: 1 Changed: 1 Warnings: 0", 2921, MSG_DONTWAIT, NULL, NULL) = 52
Для решения данной ситуации необходимо провести оптимизацию кода и запросов к базе данных.
В чем может быть проблема? это проблема базы или сервера?
И подскажите, как можно синхронизировать счетчик лс сообщений. Показывает не правильно у некоторых.