Я разрабатываю приложение asp.net, которое должно искать запись из примерно 5 миллионов записей (около 4 ГБ данных). Клиент ищет более высокую производительность и решил использовать кэш памяти. Но я сталкиваюсь с проблемой при загрузке данных в кеш памяти из asp.net. Я попытался изменить настройки пула приложений и сделал виртуальную память как 0, частную память - 0 .. Ничего не получилось. Он загружает штраф до 1,5 ГБ и исключает из памяти исключения. Нет проблем, когда я перетаскивал данные с помощью консольного приложения, сняв флажок «32 бит» в настройках сборки в свойствах приложения. Моя проблема с asp.net. Я использую рамочную работу .net 4.0 с 4-х ядерными серверами, объем памяти на сервере составляет около 49 ГБ. Я также попытался включить 32-разрядный запуск в режиме 64 в пуле приложений. Но ничего не изменилось. Не могли бы вы предложить мне, если есть какое-либо решение.Максимальный лимит памяти в Asp.net
ответ
Как уже упоминалось, Джон: запрос 5.000.000 записей - это работа БД, а не код. Если вы правильно настроите БД (пусть БД использует память как кеш, верные индексы, исполняемый SQL-запрос), я бы сказал, что вероятность 99,9% БД будет намного быстрее, чем все, что вы можете создать в ASP.NET.
В любом случае, если вы ДЕЙСТВИТЕЛЬНО хотите сделать это наоборот, вам нужно создать 64-битный процесс.
Контрольный список для этого, что (из моей головы - нет никакой гарантии на полноту):
- компиляции (все части) решения, как «Any CPU» или «x64»
- запустить IIS на 64- битный процессор ОС (который должен быть в случае с 49 Гб оперативной памяти доступной)
- Установите Application-пул для работы в качестве 64-битного процесса без ограничения памяти: Пулы
- Применение -> «Ваш бассейн» - > Дополнительные настройки ...
-> Включить 32-разрядное приложение -> False
-> Частный Лимит памяти (KB) -> 0
-> Ограничение виртуальной памяти (KB) -> 0
- Применение -> «Ваш бассейн» - > Дополнительные настройки ...
Или, возможно, кеш работает как собственный процесс из IIS. – Magnus
Спасибо вам, ребята. Я согласен, что могу сделать это в своей БД. Я обрабатываю огромный объем запросов в секунду. Мой запрос БД похож: выберите a, b, c, d, e из таблицы1, где id = первичный ключ ... Это очень простой и эффективный запрос .. хотя это эффективно .. он не дает требуемой производительности. Поэтому мы решили использовать кеш. Теперь мы решили проблему, создав службу Windows (которая создает кэш прокси и хостов) и веб-приложение отдельно. веб-приложение внутренне вызывает эту службу Windows. Она работает сейчас. Спасибо за все предложения.
- 1. Максимальный лимит Linkedlist
- 2. Максимальный лимит в Loopback
- 3. Максимальный лимит символов для TextField
- 4. Максимальный лимит хранения в QTP-массиве
- 5. Максимальный лимит развертывания в группе ресурсов Azure
- 6. Максимальный лимит просмотра в макете Android xml
- 7. Максимальный лимит для объектов в процессе?
- 8. Превышен лимит памяти LinkedList
- 9. Зачем превышен лимит памяти?
- 10. Office Добавить в лимит памяти
- 11. Максимальный лимит API Google Places для TextSerach
- 12. WindowsPhone 8 listboxitem имеет максимальный лимит высоты?
- 13. Максимальный лимит символов для адреса электронной почты
- 14. максимальный лимит выбора изображения из галереи Android
- 15. Максимальный лимит. строк таблицы с использованием Javascript
- 16. Alasql: Максимальный лимит для размера данных?
- 17. Установите максимальный размер загрузки в приложении asp.net
- 18. Невозможно увеличить лимит памяти PHP
- 19. Невозможно установить неограниченный лимит памяти
- 20. Безопасный лимит использования памяти сегодня?
- 21. Почему я превысил лимит памяти?
- 22. Максимальный размер памяти Chromecast
- 23. Запись в лимит памяти файлов в Java?
- 24. Максимальный лимит кэширования для любого списка в Android
- 25. Максимальный размер кэша ASP.NET
- 26. Каков максимальный размер виртуальной памяти?
- 27. Каков максимальный лимит запросов Google Appengine Ndb GQL?
- 28. Как запретить пользователю вводить больше данных, чем максимальный лимит?
- 29. Неустранимая ошибка: как увеличить лимит памяти
- 30. Как увеличить лимит памяти AspectJ-Maven-плагина
Вам лучше ускорить запрос базы данных, чем думать о кешировании всех данных. –
Как насчет использования чего-то, предназначенного для полнотекстового поиска (что, как я полагаю, вы хотите), например Lucene.net? – sisve
Я согласен, что это должно быть сделано в БД. Если вы представляете запрос, который используете, чтобы найти схему записи и таблицы, возможно, мы можем вам помочь. – Magnus