Отримання нового сервера

Мій бос сказав мені, що ми можемо отримати новий веб-сервер, якщо це дійсно необхідно. Я не знаю, чи дійсно це необхідно, тому я вирішив запитати тих, хто, напевно, знає.

На сайті є IIS 6.0, а також Apache. IIS розміщує тільки одну програму, яка є довгою заявкою на опитування (споживає багато потоків).

Поточна машина є Windows 2003 з двома процесорами (ймовірно, одним фізичним, але двома логічними).

Ми маємо близько 3000 унікальних відвідувачів на день.

Коли ви вводите адресу і натискаєте Enter, іноді це займає навіть більше хвилини для початкового завантаження.

Я спробував тонко налаштувати IIS, збільшивши maxWorkerThreads, maxIoThreads та інші атрибути моделі процесу, але не багато.

Чи є використання в отриманні кращої машини? Наскільки краще? Будь-які пропозиції?

Будь-які пропозиції, які могли б допомогти і не включати покупку нової машини?

EDIT: Ось поточна системна інформація

Комп'ютер: Intel (R) Xeon (R) CPU 5130 @ 2.00 ГГц, 2.00 ГБ оперативної пам'яті

Операційна система: Microsoft Windows Server 2003, Standard Edition, Service Pack 2

Будь ласка, дайте мені знати, якщо вам потрібна інша інформація щодо системи.

2

5 Відповіді

Якщо ви можете перейти на новий сервер з 6 ядрами або більше, наприклад 12 Гб сучасної пам'яті, нові диски, новішу ОС 64-розрядного сервера і останні версії всіх ваших вимог до коду, ви повинні бачити в 2 до 20 разів. збільшення швидкості в цілому, можливо, більше насправді.

1
додано
-1: Велике залізо - це не спосіб вирішення проблеми масштабованості веб-сервера
додано Автор MagicAndi, джерело
@ noob-foreva - ви відповіли на своє запитання: "More", "Modern" і "new" завжди швидше, ніж "менше", "антикварні" і "старі". Ми не можемо надати точну цифру, оскільки фактично, ми майже не знаємо про вашу програму . Навіть те, що ви сказали нам, навіть не починає дряпати поверхню, щоб зробити оцінку.
додано Автор Shlomi Fish, джерело
@symcbean - так це часто буває, особливо коли питання дуже конкретно стосується купівлі нового обладнання та під назвою "Отримання нового сервера"
додано Автор Chopper3, джерело
Багато повинно і звичайно тут. Ви зазвичай можете вирішити проблему з продуктивністю, кинувши на неї апаратні засоби або час, але без вимірювання вашої проблеми з продуктивністю ви не знаєте, куди можна кинути гроші або час. Профілювання своєї проблеми вперше, щоб ви знали, де витрачати гроші, має сенс, а не сліпо кидати гроші на нього.
додано Автор Daniel Lawson, джерело
Антоніус врізається в цвях на голову: зазвичай можна вирішити проблему продуктивності, кинувши на неї апаратні засоби або час, що є більш рентабельним - це дійсно залежить від вас.
додано Автор RemcoGerlich, джерело
Сучасні сервери приємні. Але тільки сліпо рекомендувати обладнання не збирається робити нікому нічого хорошого. Ви повинні прочитати про використання Perfmon для моніторингу процесора, пам'яті, диска і мережі, а потім використовувати цю інформацію, щоб почати копати більше, щоб з'ясувати, де саме обмеження. Купівля нового блискучого сервера не принесе вам жодної користі, якщо ви виявите, що поле не є особливо обмеженим, але ваша програма має проблеми або що вона використовує маленький процесор і пам'ять, але тонни вводу-виводу та вашого нового сервера не мають достатньо.
додано Автор ThomasX, джерело
Я сильно не згоден з тим, хто дав відповідь на цю відповідь. Якщо він працює 2003, це гарна здогадка, що його апаратне забезпечення застаріло, а також, що він апаратний обмежений: витрати $ 500 - $ 2000 збирається різко поліпшити продуктивність його програми. Це буде дешевше, ніж витрачати тонни людино-годин (або жінних годин), намагаючись вичавити кров з ріпи.
додано Автор Sean Webb, джерело
Добре, дякую вам за вашу відповідь, але чи можете ви пояснити, на чому полягає ваша відповідь? Наприклад, я знаю, що в 6 ядрі є більше процесорів, які перекладають (виправте мене, якщо я помиляюся) на більш доступні потоки, але чому більш сучасна пам'ять і нові диски, а 64-бітна ОС буде збільшувати швидкість ? А також, діапазон множення, який ви мені дали, досить широкий ... від 2 до 20?
додано Автор Samuel Kelemen, джерело
@Mark Henderson - добре, дякую.
додано Автор Samuel Kelemen, джерело
Дякуємо всім за відповіді. Я думав, що апаратне забезпечення може вирішити проблему, але я також подумав, що, можливо, це все ще непотрібно, і я не хочу раджу нікому витрачати гроші на обладнання, якщо я можу вирішити цю проблему без цього. Я буду запускати попередньо згадані тести продуктивності і розміщу їх тут. Дякуємо всім за вашу велику допомогу!
додано Автор Samuel Kelemen, джерело

Це трохи нахабно, але побачивши проблеми програмного забезпечення Noob в цей пост на StackOverflow Я б фактично запропонував проти будь-якої реальної необхідності оновити сервер. Особливо, як noob зазначив, що він не перевищує 50% часу процесора.

Проблема, з якою ви стикаєтеся (я думаю) полягає в тому, що ваші перші запити переходять у програмне забезпечення 60 000 мс тайм-аут коду зворотного виклику.

Я думаю, що вам потрібно зробити, це змінити програмне забезпечення, так що на перший запит ви передаєте результати назад безпосередньо, не дивитися файлової системи. Отримати поточні дані та відправити їх назад так швидко, як ви можете отримати код для цього.

На асинхронних зворотних зворотних лініях реалізуйте своє програмне забезпечення як є.

Ви можете дізнатися, чи запитується ця сторінка в перший раз, або в результаті зворотного зв'язку, використовуючи Page.IsPostBack .

Це дозволить вашим відвідувачам отримати сторінку протягом приблизно 1-5 секунд від того, що я бачив з вашого коду, а потім утримувати лише async зворотний виклик протягом 60 секунд.

Вибачте за викрадення нитки сервера з помилковим відповіддю = (

1
додано
Дякуємо за Ваші пропозиції, але це я вже зробив. Коли користувач переходить на сторінку з результатами показу в реальному часі, перше, що я роблю, це перевірити, чи це перше навантаження або постбекна сторінка, а якщо ні, то я регулярно завантажую дані, без асинхронних потоків. Після завершення завантаження сторінки, функція JavaScript робить виклик ajax окремому асинхронному обробнику http і продовжує процедуру, описану на потік переповнення стека. Ще раз спасибі!
додано Автор Samuel Kelemen, джерело

Не купуйте більшу коробку

Служба веб-сервісу (на відміну від обслуговування баз даних) отримує набагато більше переваг від додавання великої кількості малих серверів замість одного великого сервера - і оскільки ви вже виконуєте багато довгого опитування через HTTP, це особливо вірно. Все частіше виникають проблеми з кількістю відкритих з'єднань, кількістю запущених процесів, розміром мережевих буферів, швидкістю, з якою система може змінювати контексти ....

Так що виходити і витрачати, скажімо, $ 4k на 2 серверах дасть вам значно швидше рішення, ніж витрачати навіть набагато більше на одному сервері.

Існує величезна додаткова вигода - скажімо, доступність для вашого сервера становить 99% - припускаючи, що немає спільних залежностей, то доступність для 2 вузлів становить 100-100 * (0,01 * 0,01) = 99,99% - її майже в сто разів більш надійну.

Хоча це можливо, що ви могли б прискорити вашу поточну систему масово, налаштувавши її, ми повинні знати багато більше про природу робочого навантаження і поточного конфігурації - і навіть тоді потрібно багато роботи і тестування, щоб отримати оптимальне рішення - є кілька хороших книг на цю тему - читайте деякі з них.

Сказавши це, іноді модернізація (або краще додавання) апаратного забезпечення є єдиним рішенням - і часто це може бути найбільш економічно ефективним рішенням задовго до того, як вичерпали зусилля налаштування.

0
додано
  1. Знайдіть вузьке місце, перевірте використання CPU, оперативну пам'ять, мережу, диск I/O
  2. Чи існує БД для цієї програми, чи є вона локальною для сервера/мережі або віддаленої мережі?

Опублікуйте цю інформацію для кращого відгуку інших.

0
додано
На основі апаратної специфікації, яку ви опублікували, сервер може бути старим як 5-6 років. Я б запустив його програмне забезпечення для управління (наприклад, OpenManage, якщо це Dell), або перевірте SNMP, поки ви знаходитесь на ньому, щоб охопити всі ваші бази, щоб переконатися, що не існує проблем з обладнанням або перегрівання через невдачі компонентів.
додано Автор rbaleksandar, джерело
Добре завдяки вашій відповіді. Існує сервер бази даних MS SQL, який працює локально, і має лише одне просте з'єднання тільки для домашньої сторінки, і лише 20 записів з однієї таблиці тягнуть ... Так що я не думаю, що це проблема. Сьогодні я проведу кілька тестів і повернуся з результатами, а також поштовий індекс. Ще раз спасибі! З повагою, noob-foreva
додано Автор Samuel Kelemen, джерело

Мені здається, у вас недостатньо високого навантаження через трафік.

Я спочатку побачу, чи є що-небудь, що я можу зробити, щоб поліпшити код, або дізнатися, що насправді сповільнюється. Хвилина відповіді зазвичай вказує на тривалий час виконання. Купівля нового сервера відразу може застрелити себе в ногу. Новий сервер може значно поліпшити вашу продуктивність або не покращити його.

Я б також перевірити ваше з'єднання з сервером, якщо ви тестуєте віддалено, а не через LAN/Localhost і отримуєте такі часи відповіді.

У ці дні люди, швидше за все, рекомендують аппаратне оновлення (дешевше і простіше вийти), що є цілком правильним. Однак важливо побачити, чи зробили ми все інше правильно, щоб модернізація обладнання виграла більше.

Якщо ви дійсно не можете виправити програму (або це здається прекрасним) з будь-якої причини або всі оптимізації були зроблені, і мережа, здається, нормально, то ваш єдиний вибір - оновити апаратне забезпечення, для якого потрібно бачити використання ресурсу для завантаження сторінки . Чи використовує сервер більше пам'яті або процесора. Можливо, інші програми конкурують за ресурси, чи можна запустити монітор ресурсу/продуктивності і побачити шаблон?

сподіваюся, що це допоможе вам перевірити більше речей

0
додано
noob, не хвилюйтеся. просто не поспішайте і розмістіть те, що ви можете знайти. ми постараємося докласти всіх зусиль, щоб разом зібрати голову і знайти гарне рішення, перш ніж попросити вашого начальника підписати чек на додаткове обладнання.
додано Автор Abhishek Dujari, джерело
Дякуємо за Ваші пропозиції. Як запропонували ви та інші члени, я прочитаю в моніторах продуктивності, і побачу, чи можу я дізнатися, в чому саме полягає проблема. Що я знаю, що, коли це не пік години, сайт виконує дуже добре. Немає жодних помилок, нічого ... Але це не дає вам будь-яких релевантних деталей, тому я буду тестувати сьогодні і повертаюся з більш релевантними даними. Ще раз спасибі!
додано Автор Samuel Kelemen, джерело