|
[PHP 7.0.29] Mysql memory leaks
|
|||
---|---|---|---|
#18+
Используется Yii 1.20, проблема в утечках памяти. Код довольно простой Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Результат работы: 100 - 543978 - 1025.1407012939 101 - 543978 - 1034.8581771851 102 - 543978 - 1044.6429214478 103 - 543978 - 1054.2836227417 104 - 543978 - 1063.6922073364 105 - 543978 - 1073.1975021362 106 - 543978 - 1082.4176712036 107 - 543978 - 1091.5915756226 108 - 543978 - 1101.0670852661 109 - 543978 - 1109.7466659546 110 - 543978 - 1119.1266098022 111 - 543978 - 1128.387840271 112 - 543978 - 1137.9474105835 113 - 543978 - 1146.7601852417 114 - 543978 - 1156.1394577026 115 - 543978 - 1165.2169952393 Как видим потребление памяти постоянно растет. Можно перейти на mysqli, но это не особенно решает проблему. Записей ~500000 Может кто-то сталкивался с подобной проблемой? Или может порекомендовать что-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 11:22 |
|
[PHP 7.0.29] Mysql memory leaks
|
|||
---|---|---|---|
#18+
spider13, Зачем все эти тысячи апдейтов в цикле? При беглом просмотре кода есть ощущение, что задача решается парой апдейтов. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:25 |
|
[PHP 7.0.29] Mysql memory leaks
|
|||
---|---|---|---|
#18+
spider13, И, кстати, Limit без order by - рулетка. Нет никакой гарантии, что будут выданы именно те записи, которые нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:26 |
|
[PHP 7.0.29] Mysql memory leaks
|
|||
---|---|---|---|
#18+
miksoftspider13, Зачем все эти тысячи апдейтов в цикле? При беглом просмотре кода есть ощущение, что задача решается парой апдейтов. Не парой, а тремя запросами. Но таймаут довольно маленький и след запрос просто не успевает выполнятся. miksoftspider13, И, кстати, Limit без order by - рулетка. Нет никакой гарантии, что будут выданы именно те записи, которые нужно. С данной таблицей работает только один скрипт, поэтому никаких проблем с ним не будет для MyISAM ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 12:55 |
|
[PHP 7.0.29] Mysql memory leaks
|
|||
---|---|---|---|
#18+
превое что бросается в глаза - зачем делать createCommand в цикле? Сделай один раз перед циклом и используй. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 14:20 |
|
[PHP 7.0.29] Mysql memory leaks
|
|||
---|---|---|---|
#18+
gc collect cycle надо вызвать перед проверкой рахода памяти, он может не сразу мусор подчищать, чему тут удивляться... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 14:21 |
|
[PHP 7.0.29] Mysql memory leaks
|
|||
---|---|---|---|
#18+
Hettgc collect cycle надо вызвать перед проверкой рахода памяти, он может не сразу мусор подчищать, чему тут удивляться... Пробовал, не помогает. Hettпревое что бросается в глаза - зачем делать createCommand в цикле? Сделай один раз перед циклом и используй. Пробовал, тоже разницы особо никакой. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 15:53 |
|
[PHP 7.0.29] Mysql memory leaks
|
|||
---|---|---|---|
#18+
давайте код, как стало выглядеть не исключено что и в юии проблемы, или в какой-то либе, которую он использует дебаг/трейс лог отключен? у yii логгер может логи собирать и флашить раз в 1000 сообщений, может просто у вас еще флаша не произошло. Вообще на скольки итеррациях тестировали? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 16:13 |
|
[PHP 7.0.29] Mysql memory leaks
|
|||
---|---|---|---|
#18+
Hettдавайте код, как стало выглядеть не исключено что и в юии проблемы, или в какой-то либе, которую он использует дебаг/трейс лог отключен? у yii логгер может логи собирать и флашить раз в 1000 сообщений, может просто у вас еще флаша не произошло. Вообще на скольки итеррациях тестировали? Весь код собственно в первом посте. Дебаг и трейс включен, и возможно в эту сторону нужно компать, Вы правы. Довольно таки много раз пробовал, результат один и тот же. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 17:18 |
|
[PHP 7.0.29] Mysql memory leaks
|
|||
---|---|---|---|
#18+
spider13Но таймаут довольно маленький и след запрос просто не успевает выполнятся.Какой именно таймаут? Единые запросы будут выполняться ощутимо быстрее, чем показанный кусок кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 23:47 |
|
[PHP 7.0.29] Mysql memory leaks
|
|||
---|---|---|---|
#18+
spider13, попробуйте другие варианты : 1) апдейт 1 запросом. 2) уменьшать количество ссылок, делая Код: php 1.
или др решения, из области проверки подсчета ссылок 3) по поводу сборки мусора = да. но не мгновенно. это нужно учитывать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2018, 11:40 |
|
[PHP 7.0.29] Mysql memory leaks
|
|||
---|---|---|---|
#18+
автор$query = null; глупости ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2018, 11:51 |
|
|
start [/forum/topic.php?fid=23&msg=39721942&tid=1460126]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 128ms |
0 / 0 |