Поэтому я заметил, что процесс "mysqld" на моей машине Amazon Linux (EC2 Instance) забивал тонну памяти. Я его прекратил, и он сразу решил эту проблему. У меня есть отдельные базы данных RDS, и я все еще могу получать и передавать информацию этим через Интернет через мой хост без каких-либо проблем. Я полагаю, что другие процессы помогают справиться с этим.
Поэтому мой вопрос: хотя все, кажется, работает на веб-страницах с интерфейсом, что недостаток в том, что этот процесс не работает? Я заметил, что есть другие базы данных с надписью "information_schema" и "mysql", в которых записаны данные, которые очень часто изменяются, но я не создавал эти БД и они не критичны для приложений.
Так этот процесс просто хранит информацию о сервере в этих БД? Будет ли это иметь больше хаоса, чем это стоит?
EDIT: Я обнаружил, что информация, хранящаяся в базах данных, исходит из функций в службе RDS, а не для хоста linux. Таким образом, предположение все еще говорит о том, что, если я не запускаю запросы в "localhost", мне вообще не нужен этот процесс. Я только напрямую общаюсь с Amazon RDS.
Если это ваша коробка, вы должны знать, нужна она вам или нет.
Если вам это нужно, и он использует слишком много памяти, тогда скажите ему использовать меньше.
information_schema
очень важна для приложений! В Unix и Unix-подобных системах процессы, заканчивающиеся на "d", являются демонами (см. "services" в Windows) и не могут быть завершены по желанию без каких-либо действий. У меня недостаточно информации, чтобы знать глубинную архитектуру вашего приложения, но я предлагаю вам не заметить проблему с интерфейсом, потому что на вашем бэкэнд используется некоторая форма репликации базы данных. Предложения:
Из Википедии:
Информационная схема - это набор представлений только для чтения, которые предоставляют информацию обо всех таблицах, представлениях, столбцах и процедурах в базе данных
Без этого ваши данные теряют свою структуру. Вы также не можете избавиться от таблицы mysql
или игнорировать ее - она хранит основные вещи, которые вы используете для своих пользователей... попробуйте запустить select user, host from mysql.user;
чтобы понять, что я имею в виду.
join
, длинные запросы и подстановочные (%
) операторы, которые используются слишком либерально. Это даст вам место для началаservice mysql restart
как пользователь root (используйте sudo
или su
для достижения этого, если необходимо)mysqld
с помощью htop
- отличный инструмент для дополнения стандартной top
команды, которая поставляется со многими Unix-подобными системами
mysqld
не связана с объемом выполняемой работы - она распределяет память в основном на основе конфигурации, а не фактической рабочей нагрузки - так что это действительно не должно быть случаем «он ничего не делал».