Назад | Перейти на главную страницу

бросить память в процесс

У меня есть процесс, который вставляет 10 миллионов записей в базу данных mysql и работает в Linux с (процессорами 4 * 2,13 ГГц + 4 ГБ памяти). Сейчас это занимает ~ 2 часа, и я не уверен, задействует ли процесс все процессоры. Используя top, я увеличил приоритет (переименован до -20), а время работы сократилось до 20 минут.

Вы знаете, что если этот процесс однопоточный, он может работать только на одном ядре, верно? Если вы не используете программу, которая является (или вы написали для нее) многопоточную, вы можете быть уверены, что она не будет использовать все процессоры. Выполнив некоторые быстрые поисковые запросы, вы также можете столкнуться с тупиками, в зависимости от структуры вашей БД, если вам все же удастся сделать многопоточную вставку. Вот еще один совет: использовать массовый загрузчик.

Если это вам не поможет, расскажите нам больше о реальной проблеме, которую вы пытаетесь решить. Вам нужно сделать вставку менее чем за 20 минут? Менее 10? Менее 5? Какую бизнес-проблему вы решаете или с какими ограничениями вы работаете?

Я бы хотел, чтобы процесс задействовал все процессоры, и хотел бы знать, какой инструмент я могу использовать для его поиска?

Поделитесь своим входным набором.