Зіткнувся з цікавою проблемою в Microsoft Exchange Server 2010 року (характерна вона й для версій Exchange Server 2007/2013). Деякі користувачі стали скаржитися на періодичну неможливість отримати скани з МФУ та Сендеров, налаштованих на відправку пошти через сервер Exchange з роллю CAS (Client Access Server). При цьому пошта між користувачами Exchange в рамках сервера доставлялася без будь-яких проблем.
Для діагностики проблеми спробував вручну відправити лист з командою рядка за допомогою telnet. Так як конфігурація є два CAS сервера, об'єднаних в CAS Array за допомогою NLB, довелося виконувати перевірку для кожного сервера. На першому сервері відправка пройшла без проблем, а на другому після виконання команди mail from з'явилася помилка: 452 4.3.1 Insufficient system resources
В журналі додатків сервера при цьому реєструється подія EventID: 15006 від джерела Source: MSExchangeTransport
Microsoft Exchange Transport is rejecting message submissions because the available disk space has dropped below the configured threshold.The following resources are under pressure:Queue database logging path ( «C: \ Program Files \ Microsoft \ Exchange Server \ V14 \ TransportRoles \ data \ Queue \») = 96% [High] [Normal = 92% Medium = 94% High = 96%]
Physical memory load = 90% [limit is 94% to start dehydrating messages.]
The following components are disabled due to back pressure:
Inbound mail submission from Hub Transport servers
Inbound mail submission from the Internet
Mail submission from Pickup directory
Mail submission from Replay directory
Mail submission from Mailbox server
Content aggregation
The following resources are in normal state:
Queue database path ( «C: \ Program Files \ Microsoft \ Exchange Server \ V14 \ TransportRoles \ data \ Queue \ mail.que») = 95% [Normal] [Normal = 95% Medium = 97% High = 99%]
Version buckets = 0 [Normal] [Normal = 80 Medium = 120 High = 200]
Private bytes = 14% [Normal] [Normal = 71% Medium = 73% High = 75%]
Batch Point = 0 [Normal] [Normal = 2000 Medium = 4000 High = 8000]
Submission Queue = 0 [Normal] [Normal = 1000 Medium = 2000 High = 4000]
Причина виникнення помилки - закінчення вільного місця на диску, на якому знаходяться черзі служби Exchange Hub Transport. Справа в тому, що в Exchange є спеціальний компонент моніторингу доступних ресурсів Back Pressure, який в тому числі відстежує вільне місце на диску, на якому зберігаються черги транспортної служби Exchange.
При перевищеній порогових значень Exchange може:
- поріг Medium (90%) - перестати приймати по SMTP пошту від зовнішніх відправників (пошта від MAPI клієнтів при цьому обробляється)
- поріг High (99%) - обробка потоку пошти повністю припиняється
Тому, в разі виникнення подібної помилки можна:
- Очистити диск від сміття
- Відключити моніторинг Back Pressure (поганий варіант)
- Перенести транспортні чергу на інший диск достатнього обсягу.
За замовчуванням транспортна чергу зберігається на системному диску. Після аналізу диска C: \ я виявив, що майже 15 Гб місця займала папка з логами IIS (C: \ inetpub \ logs \ LogFiles \ W3SVC1). Як правило, ці логи можна спокійно видалити і включити для них скрипт автоматично видаляти логів IIS.
Якщо ж звільнити місце не вдається, можна перемістити каталог транспортної черги Exchange на інший диск.
Шлях до каталогу з чергою задається в конфігураційному файлі $ env: exchangeinstallpath \ bin \ EdgeTransport.exe.config наступними змінними:
Досить вказати новий шлях до каталогу з чергою, і перезапустіть службу Microsoft Exchange Transport (Restart-Service MSExchangeTransport
) І Exchange автоматично їх створить.