Показать статистику
0 голосов
от (4.6тыс. баллов)
Есть подозрение что в каком то из приложений есть утечка памяти. Речь идет о настольной системе. Файл подкачки довольно быстро заполняется и все начинает тормозить. Проблема происходит не сразу, через день-два. Буду признателен за рекомендации по траблшутингу проблемы.
1.3тыс. просмотров 3 ответов

3 Ответы

0 голосов
от (280 баллов)

Для обнаружения разного рода утечки памяти, можно воспользоваться бесплатным инструментом программирования Memwatch. Специально разработан для обнаружения и диагностики утечек памяти.  У Memwatch есть отличие от других подобных программ для отладки, так как непосредственно компилируется непосредственно в программу, которая и будет отлаживаться, а не отдельно компилируется и загружается в программу во время выполнения. 

Ещё посоветую попробовать воспользоваться программой Valgrind. Программа хорошо себя зарекомендовала как мощное средство по поиску ошибок работы с памятью. Плюсом будет, что в этой программе есть дополнительные утилиты для профилирования программ, для анализа потребления памяти и для поиска ошибок непременно связанных именно с синхронизацией в многопоточных программах.

Попробуйте по пробовать обе эти программы, потом определитесь для себя какая вам больше подходит и какой удобнее вам будет пользоваться. 

Надеюсь смог вам помочь.

0 голосов
от (140 баллов)

Дополню имеющейся комментарий, утечку можно отследить и без помощи сторонних программ, есть ряд инструментов в самой системе, такие как VМSTАT,РМАР,SАR
В общем, РAМP может показать вывод памяти, который потребляеться отдельными сегмента адреса и библеотеками процесса 


Так же, можно использовать smaps соответствующих процессов 

# cat /proc/$(pgrep amsHelper)/smaps | grep -i pss |  awk '{Total+=$2} END {print Total/1024" MB"}'
14.4092 MB  

Это скрипт дабы объеденить память и получить общую сумму 

Надеюсь смог вам помочь :) 

0 голосов
от (17.4тыс. баллов)

Если вы подозреваете утечку памяти в одном из приложений, следуйте этим рекомендациям для траблшутинга проблемы:

1. **Отслеживание использования памяти**: Запустите вашу систему, и включите все приложения, которые вы обычно используете. Затем используйте системный монитор или команду `top` (или `htop` для более дружественного интерфейса) в терминале, чтобы отслеживать процессы, которые используют больше памяти с течением времени.

top

или

htop

2. **Определение процесса с утечкой памяти**: Обратите внимание на процессы, которые продолжают увеличивать свое использование памяти без видимой причины. Это может указывать на утечку памяти.

3. **Закрытие и повторное открытие приложения**: Если вы обнаружили процесс, который, как вы думаете, имеет утечку памяти, закройте его и откройте снова. Обратите внимание, уменьшается ли использование памяти после перезапуска приложения. Если да, это еще один признак утечки памяти.

4. **Проверка обновлений**: Если вы определили приложение с утечкой памяти, убедитесь, что у вас установлена последняя версия этого приложения. Иногда проблемы с утечкой памяти исправляются в новых версиях.

5. **Поиск известных проблем**: Проверьте интернет-ресурсы, форумы и страницы поддержки приложения на предмет известных проблем с утечкой памяти. Возможно, разработчики уже знают о проблеме и работают над исправлением.

6. **Отправка отчета об ошибке**: Если проблема не решена и вы уверены, что утечка памяти связана с определенным приложением, рассмотрите возможность отправки отчета об ошибке разработчикам, чтобы они могли исправить проблему в будущих версиях.

7. **Поиск альтернатив**: Если проблема не может быть решена, рассмотрите возможность использования альтернативного приложения, которое не страдает от утечек памяти.

Таким образом, вы сможете определить источник утечки памяти и, возможно, найти способы ее устранения. Если ни одно из предложенных решений не помогает, вы можете продолжить исследования:

8. **Анализ логов**: Изучите системные логи (например, `/var/log/syslog` в Linux), чтобы обнаружить возможные ошибки или предупреждения, связанные с утечкой памяти. Это может помочь вам определить причину проблемы.

9. **Профилирование приложений**: Если вы являетесь разработчиком или имеете опыт работы с кодом, вы можете попробовать профилировать приложение с помощью инструментов, таких как Valgrind, чтобы определить местоположение утечки памяти.

valgrind --tool=memcheck --leak-check=full <your_program>

10. **Мониторинг системы**: Установите и используйте инструменты мониторинга системы, такие как Glances или Netdata, чтобы отслеживать использование памяти, нагрузку на процессор и другие метрики в режиме реального времени.

11. **Переход на другое ядро (Linux)**: Если проблема с утечкой памяти связана с ядром Linux, вы можете попробовать обновиться до другой версии ядра или переключиться на другое ядро (например, с ядра общего назначения на ядро с низкой задержкой).

12. **Обновление системы**: Убедитесь, что ваша операционная система и все установленные пакеты обновлены до последних версий. Иногда проблемы с утечкой памяти могут быть вызваны устаревшими компонентами системы.

Чтобы выполнить обновление на Ubuntu, используйте следующие команды: 

sudo apt update
sudo apt upgrade

На macOS, откройте App Store и проверьте доступные обновления.

Следуя этим рекомендациям, вы сможете узнать причину утечки памяти и, возможно, найти способы устранения проблемы. 

...