портал С#+MySQL
У нашей организации есть сайт, разработанный еще зимой прошлого года. В течение долгого времени в код его файлов разными людьми вносились различные поправки и добавления.
Сайт создан при помощи C# с использованием БД MySQL и XML. Сервер на котором сайт находится работает под Линухом, но машина достаточно слабенькая для сайта с большим кол-вом посетителей (Celeron 2 Ghz + 512 оперативки) Сервер, можно сказать, перегружен. особенно, в моменты, когда обрабатывается большое число запросов к БД+запускается рассылка+заходят поисковые роботы.
Для добавления информации существует специальная форма, добавляющая информацию в БД (новости+анонсы и тп) Обычно все происходит отлично, но бывает такое, что при добавлении новой информации выходит ошибка "...wrong key for table...."
Подскажите, где искать ошибку:
1) Зависит ли это только от низкой производительности сервера
2) Что-то с таблицей. Тогда, как это можно исправить?
3) существует какая-то недоработка в коде страницы
Заранее благодарен
Предвижу возможную бурю негодования, но все же задаю вопрос, ожидая помощи:
У нашей организации есть сайт, разработанный еще зимой прошлого года. В течение долгого времени в код его файлов разными людьми вносились различные поправки и добавления.
Сайт создан при помощи C# с использованием БД MySQL и XML. Сервер на котором сайт находится работает под Линухом, но машина достаточно слабенькая для сайта с большим кол-вом посетителей (Celeron 2 Ghz + 512 оперативки) Сервер, можно сказать, перегружен. особенно, в моменты, когда обрабатывается большое число запросов к БД+запускается рассылка+заходят поисковые роботы.
Для добавления информации существует специальная форма, добавляющая информацию в БД (новости+анонсы и тп) Обычно все происходит отлично, но бывает такое, что при добавлении новой информации выходит ошибка "...wrong key for table...."
Подскажите, где искать ошибку:
1) Зависит ли это только от низкой производительности сервера
2) Что-то с таблицей. Тогда, как это можно исправить?
3) существует какая-то недоработка в коде страницы
Заранее благодарен
встречные вопросы. что значит "перегружен"? по использованию памяти, по использованию процессорных ресурсов? насколько велика нагрузка? если сервер действительно СИЛЬНО загружен - MySQL может и не выдержать.
встречные вопросы. что значит "перегружен"? по использованию памяти, по использованию процессорных ресурсов? насколько велика нагрузка? если сервер действительно СИЛЬНО загружен - MySQL может и не выдержать.
По использованию памяти: бывают моменты, когда свободно всего 10, а то и 3 мегабайта! В первый раз данная ошибка была замечена в момент когда не занято было всего 3 из 512! Все благополучно было савлено на недостаток памяти.
Сегодня ошибка была при свободных 80 мегабайтах.
Вопрос:стоит ли просто выбивать доп память и спокойно изучать кучу чужого кода, или выбивать память и срочно думать над возможной ошибкой в коде?
встречные вопросы. что значит "перегружен"? по использованию памяти, по использованию процессорных ресурсов? насколько велика нагрузка? если сервер действительно СИЛЬНО загружен - MySQL может и не выдержать.
Предыдущим работником число одновременно обрабатываемых запросов к БД было по его словам ограничено до 10 в сек. Но паамять жрется неимоверно!!!!
По использованию памяти: бывают моменты, когда свободно всего 10, а то и 3 мегабайта! В первый раз данная ошибка была замечена в момент когда не занято было всего 3 из 512! Все благополучно было савлено на недостаток памяти.
Сегодня ошибка была при свободных 80 мегабайтах.
Вопрос:стоит ли просто выбивать доп память и спокойно изучать кучу чужого кода, или выбивать память и срочно думать над возможной ошибкой в коде?
я бы смотрел в сторону базы. машина - вполне пристойная. а такое количество занятой памяти - это нормально.
Сегодня ошибка была при свободных 80 мегабайтах.
Вначале надо выяснить, кто выдает ошибку о нехватке памяти - база, среда выполнения .NET или само приложение. Нерадивые программисты, в том числе системные, бывает частенько все нераспознанные ошибки валят как ошибки памяти. Особенно этим болеют многоплатформенные и портированные проекты. Например, было неоднократно замечено при работе FreeHand. На самом же деле ошибка была связана с файлами или логикой самой программы.