|
Моя борьба за производительность... | ☑ | ||
---|---|---|---|---|
0
LehhaK
31.01.13
✎
07:00
|
Стала медленно работать база. Ну как стала... Когда я пришел (4 месяца назад), уже так было. Началась постепенная борьба за улучшение доли простых пользователей. Сначала обновил платформу до 8.2.17, потом обновил PostgreSQL до 9.1 от 1С. Потом настроил постгрес. На данный момент имеем:
6 баз на сервере и одну файловую. из 6 серверных работают на 2х. Первая БП 2.0 (.dt весит 150 Мб), в которой 3 пользователя. Вторая УТ 10.3(.dt весит 400 Мб), порядка 50 пользователей, остальные базы - тестовые (тестил обмен с сайтом, обмен БП-УТ и прочее). Сейчас просто лежат. Файловая ЗУП - работают 2 человека иногда, поэтому на сервер пока не переношу. При этом у всех 1с работает достаточно медленно (проводит/открывает документы и прочее) только в клиент-сервере, в файле значительно лучше. все юзеры на RDP Теперь про сервер: Серверов всего 2. Один чисто под RDP, второй под постгрес, Сервер 1с и RDP. Система почти не загружена: из 16 ГБ оперативы в самый пик используется не больше 9,5. Проц загружен процентов на 30. Простой жесткого от 80% до 100%. Длина очереди даже 1 не бывает. Если интересно - могу выложить настройки постгресса. Ему там выделено ресурсов столько, что он закэшировать может обе базы на несколько раз. При этом тормоза как были, так и есть. Тест производительности от Гилева показывает между 5 и 7 попугаями(кто не в курсе, меньше 10 - это плохо. от 10 до 15 - уже удовлетворительно и т.д.) Кто-нибудь, подскажите, куда еще копать? У меня варианты кончились... |
|||
501
ansh15
27.02.13
✎
14:19
|
(494) Из Linux клиента (8.3.2.172) не хочет публиковать. И 16 и 32 потока тоже не хочет отрабатывать.
|
|||
502
Fragster
гуру
27.02.13
✎
14:49
|
(501) публикует сервер, а не клиент... с какой ошибкой падает?
|
|||
503
Fragster
гуру
27.02.13
✎
14:50
|
16 и 32 потока не хочет отрабатывать, пишет "не получилось синхронизировать потоки"? а на какой машине запускалось (в частности, сколько ядер)
|
|||
504
Fragster
гуру
27.02.13
✎
14:52
|
вообще я только что переписал на PDO с обычных запросов сервис, мог что-то поломать :(
а мне даже и не проверить (вернее, я проверил на тестовом методе test() - вроде работает, а вот поскольку на серверах 1с инет закрыт - полноценную публикацию не могу проверить) |
|||
505
Fragster
гуру
27.02.13
✎
15:02
|
(502)+ кстати, в табличку, куда запросы пишутся, ничего про запрос веб сервиса не записалось, кроме того запроса, который я сам слал
|
|||
506
ansh15
27.02.13
✎
15:05
|
(502)Тогда ясно, сервер без интернета был.
|
|||
507
ansh15
27.02.13
✎
16:12
|
(505) Записалось.
|
|||
508
Fragster
гуру
27.02.13
✎
16:36
|
про 16 и 32 потока я, кажется, понял... сервер под линупсом без ключа?
|
|||
509
ansh15
27.02.13
✎
17:10
|
(508)Именно.
|
|||
510
Fragster
гуру
27.02.13
✎
17:18
|
(509) получается, что одновременно больше 12 коннектов к серверу не может быть включая фоновые задания
|
|||
511
ansh15
27.02.13
✎
17:38
|
(503) Да. 16 ядер.
(510) Понятно. |
|||
512
Fragster
гуру
28.02.13
✎
15:30
|
добавил вывод детальных результатов
|
|||
513
Venberg
01.03.13
✎
02:40
|
Тест интересный. Но какой-то нестабильный. Уж больно большой разброс в двух-трех подряд запущенных тестах.
|
|||
514
Balabass
01.03.13
✎
03:46
|
А мои дела плохи?
http://screencast.com/t/xzaLaZa8WHnf |
|||
515
Fragster
гуру
01.03.13
✎
07:53
|
(513) на сервере еще кто-то работает?
|
|||
516
Fragster
гуру
01.03.13
✎
07:55
|
(514) практика показывает, что тест гилева у меня на сервере выдает 16, но при этом 100 юзеров на этом сервере работают. На моем же компе тест гилева выдает 45, но юзерам уже в количестве 10 не очень хорошо.
|
|||
517
Venberg
01.03.13
✎
11:07
|
Два последних результата мои.
Правда так и не понял - как провести тест для 10-100 пользователей? Можно им сделать нагрузочное тестирование предела загрузки серверов для операционной работы? Или наоборот аналитической? Больше конечно операционная работа интересует. Это когда выписываются счета и проводятся накладные. Если бы было возможно увидеть "потолок" количества одновременных пользователей, то было бы просто замечательно. |
|||
518
Fragster
гуру
01.03.13
✎
11:30
|
(517) потолок - это когда график выходит на плато.
поскольку каждый тест занимает около полутора минут, увеличение количества тестов замедлит общее время выполнения :( ограничение в 32 потока чисто психологическое. если интересно - можно сделать после 32 еще несколько этапов по +16 потоков... |
|||
519
Fragster
гуру
01.03.13
✎
11:31
|
психологическое = эмпирическое
|
|||
520
Fragster
гуру
01.03.13
✎
14:20
|
сейчас у себя проверяю, как оно будет выполняться в 1, 2, 4, 8, 16, 32, 48, 64, 80, 96, 112 потоков. если взлетит - выложу обновление :)
|
|||
521
zlnk
01.03.13
✎
14:32
|
Fragster, какие новости? Где за ними следить? Как развивается тест? Напомню, у меня в своё время на 16 (или на 32?) потоков не отработало.
|
|||
522
Fragster
гуру
01.03.13
✎
15:44
|
Добавил автозаполнение информации о сервере 1с
Изменил алгоритм синхронизации потоков - теперь используется ЗапуститьПриложение вместо бесконечного цикла для ожидания запуска других потоков, что не грузит процессор и дает время для запуска других потоков. Также увеличил время на синхронизацию до 30 секунд. Теперь тесты выполняются в 1, 2, 4, 8, 16, 32, 48, 64, 80, 96, 112 потоков. Обновил WS-ссылку, добавил версию платформы в результаты. Добавил запрос на публикацию результатов теста при изменении (Внимание! Для успешной публикации должен быть разрешен интернет на сервере 1с!) |
|||
523
Fragster
гуру
01.03.13
✎
15:47
|
||||
524
zlnk
01.03.13
✎
17:24
|
(522) брать на ИС?
|
|||
525
Fragster
гуру
01.03.13
✎
17:31
|
(524) у меня на сайте и на ИС одинаковая версия лежит
|
|||
526
Hmster
01.03.13
✎
17:49
|
(522) а зачем так много? 48-ми было бы за глаза.
|
|||
527
Fragster
гуру
01.03.13
✎
18:05
|
(526) зато видно, как графики загибаются вниз на 112 :)
|
|||
528
Venberg
01.03.13
✎
21:59
|
Гы! А при чем тут интернет на сервере 1с и публикация на сайт??? Вроде как интернет нужен на клиентской машине для публикации на сайт. Мы же вроде запуск клиентской части не на сервере делаем.
|
|||
529
Hmster
01.03.13
✎
22:33
|
(527) ну не всегда загибается
http://s018.radikal.ru/i524/1303/ca/ef703282f76f.jpg http://s018.radikal.ru/i508/1303/b0/f9b99232a6bb.jpg разброс сильный почему-то попробую на выходных. Может более стабильный результат будет. |
|||
530
Fragster
гуру
01.03.13
✎
22:45
|
(529) я скоро обновлю - время теста в 2 раза увеличу, как раз чтобы разброс был меньше
|
|||
531
Fragster
гуру
01.03.13
✎
22:45
|
(528) в тонком клиенте нет wsпрокси
|
|||
532
Fragster
гуру
01.03.13
✎
22:46
|
интересно откуда рост 96-112
|
|||
533
Fragster
гуру
01.03.13
✎
23:01
|
что-тьо запись инфы о серверах глючит :(
|
|||
534
Fragster
гуру
01.03.13
✎
23:12
|
что, в опере-мини верстка не разъезжается?
|
|||
535
Hmster
01.03.13
✎
23:45
|
||||
536
Fragster
гуру
02.03.13
✎
17:48
|
кажется понял, откуда скачки - часть потоков стартует на секунду-две раньше, попробую устранить
|
|||
537
Jump
02.03.13
✎
18:21
|
(6)Антивирус на SQL сервере??
Вот нафига он там? Или это еще и файлопомойка по совместительству? |
|||
538
Fragster
гуру
02.03.13
✎
21:56
|
блин, на больших количествах потоков с синхронизацией реальные проблемы :(
|
|||
539
Fragster
гуру
02.03.13
✎
22:45
|
победил! сейчас обновлю конфу!
|
|||
540
Fragster
гуру
02.03.13
✎
23:18
|
Обновил на сайте, на ИС отправил на модерацию
|
|||
541
Fragster
гуру
03.03.13
✎
16:52
|
для 400 потоков разброс старта 2 секунды
|
|||
542
Fragster
гуру
03.03.13
✎
17:33
|
Обновил версию на сайте - теперь там есть обработка проверки механизма синхронизации (1000 потоков у меня вылетают - не могут синхронизироваться, 500 потоков - нормально, но с небольшим разбросом).
|
|||
543
Fragster
гуру
03.03.13
✎
18:54
|
на сервере с 2хядерном (без ht) процессором, на котором 1с и мсскуль стоит флуктуаций стало намного меньше:
(1с 8.2.16.368 / GenuineIntel x86 Family 6 Model 23 Stepping 6 1866 MHz / 4,00 ГБ / Windows x86 (Microsoft Windows 2003 version 5.2 Service Pack 2 (Build 3790))) http://wstaw.org/m/2013/03/03/plasma-desktopk17204.png |
|||
544
zlnk
04.03.13
✎
10:22
|
Fragster, игрулька прикольная. Ты к ней тоже таблицу рекордов прикрути.
|
|||
545
Hmster
05.03.13
✎
13:50
|
(543) Потестил. Но все же есть.
http://s003.radikal.ru/i201/1303/71/bcfb8c0a7a7f.jpg |
|||
546
Hmster
05.03.13
✎
13:51
|
(545) Это еще может из-за СУБД... буду еще пробовать ...
|
|||
547
Fragster
гуру
05.03.13
✎
13:55
|
(546) согласись, что их намного меньше. Ну и на ноуте всякие внезапно просыпающиеся службы индексирования и прочего могут влиять. + на винде планировщик потоков на такое издевательство, наверное, не приспособлен.
ну, можно ценой увеличения времени в 2 раза убрать совсем: в коде в функции Тестирование.ВыполнитьМногопоточныйТест() поставь Кругов = 2 вместо 1. |
|||
548
Fragster
гуру
05.03.13
✎
13:56
|
на десктопной
|
|||
549
Hmster
05.03.13
✎
13:58
|
(547) стало более правильно показывать. щас еще раз так и потом попробую кругами ...
|
|||
550
Fragster
гуру
05.03.13
✎
13:59
|
(549) а проверка механизма синхронизации что кажет?
|
|||
551
Hmster
05.03.13
✎
14:30
|
(550) думает пару секунд
|
|||
552
Fragster
гуру
05.03.13
✎
14:30
|
(551) на выходе сколько строк? одна?
|
|||
553
Hmster
05.03.13
✎
14:52
|
1 строка. сделал еще 2 теста
http://s019.radikal.ru/i635/1303/05/668b720f69b1.jpg http://s018.radikal.ru/i519/1303/3c/f7b63214544e.jpg попробую увеличить кол-во кругов.. |
|||
554
Fragster
гуру
05.03.13
✎
14:57
|
(553) значит, все потоки получили сигнал в течении одной секунды :) если бы в 2 строки показывало - то это сигнализировало бы о том, что он не может синхронизировать заданное число потоков в одну секунду.
|
|||
555
Fragster
гуру
05.03.13
✎
14:57
|
как на ИС на скрине для 500 потоков
|
|||
556
Fragster
гуру
05.03.13
✎
14:57
|
||||
557
Hmster
05.03.13
✎
16:51
|
4 круга флуктуацию не уменьшили.
А она может происходить из-за чрезмерной загруженности системы? |
|||
558
Fragster
гуру
05.03.13
✎
16:51
|
(557) может
|
|||
559
Fragster
гуру
05.03.13
✎
16:52
|
особенно если что-то параллельно делать еще на компе
|
|||
560
Hmster
05.03.13
✎
17:06
|
(559) он просто рядом стоит. монитор запустил и смотрел. у него когда много потоков загрузка не высокая на проц, диски, сетку. на взаимодействии процессов где-то тормоза походу идут.
наверное после максимума смотреть бессмыслено ... |
|||
561
Fragster
гуру
05.03.13
✎
17:08
|
(560) да, на 8 юзеров у тебя сервер :)
|
|||
562
Fragster
гуру
05.03.13
✎
17:08
|
в смысле ноут
|
|||
563
Hmster
05.03.13
✎
17:13
|
попробую в понедельник на нормальном сервере потестировать. сейчас на нем считают усиленно и перепроводят...
|
|||
564
Fragster
гуру
05.03.13
✎
17:13
|
а может просто ось типа десктопная - не приспособлена. Вот тут: http://wstaw.org/m/2013/03/03/plasma-desktopk17204.png коре2дуо без гипертрединга, но на висервер 2003 - падения нету такого...
|
|||
565
Hmster
05.03.13
✎
17:16
|
у тебя MS SQL ?
|
|||
566
Fragster
гуру
05.03.13
✎
17:17
|
(565) ага, 2003
|
|||
567
Fragster
гуру
05.03.13
✎
17:17
|
вернее 2005
|
|||
568
Hmster
05.03.13
✎
17:20
|
может дело еще в СУБД. На каждый поток Postgre по процессу создает. На большом количестве потоков вырастает обращение к журналу диска, сами данные читает/записывает меньше. Да и винт у меня не скоростной.
|
|||
569
Fragster
гуру
05.03.13
✎
17:21
|
(568) убери fsync из конфига
|
|||
570
Fragster
гуру
05.03.13
✎
17:21
|
в смысле fsync = off
|
|||
571
ansh15
05.03.13
✎
17:30
|
Пробовал запускать в веб клиенте, виснет на 16-и потоках, потом пришлось перезапускать и сервер приложений с чисткой кэша и апач.
|
|||
572
Fragster
гуру
05.03.13
✎
17:35
|
(571) Вообще вся работа ведется на сервере, на клиенте только проверяет сообщения от заданий. А в тонком - работает?
Еще есть нюанс - на бесплатном линух-сервере не дает больше 12 соединений (т.е. клиент + 11 фоновых одновременно), соответственно, оно падает с ошибкой невозможности синхронизации потоков. а поскольку времени на синхронизацию - 30 секунд, то всего надо подождать примерно 30 * 4 (количество под тестов) * 7 (количество тестов с количеством потоков больше 12) |
|||
573
Fragster
гуру
05.03.13
✎
17:35
|
секунд
|
|||
574
Fragster
гуру
05.03.13
✎
17:51
|
(557) ну, круги я вводил, чтобы сгладить флуктуации, которые на самом деле из-за неправильной синхронизации возникали. Соответственно, когда сделал синхронизацию через блокировку константы, проверил на 1 и на 2 кругах. вроде на 2-х было поплавнее, но и на 1 вполне приемлемо.
|
|||
575
Hmster
05.03.13
✎
17:57
|
(570) бу-га-га. результаты стали хуже...
|
|||
576
Fragster
гуру
05.03.13
✎
17:58
|
(575) jge,kbrjdfk&
|
|||
577
Fragster
гуру
05.03.13
✎
17:58
|
опубликовал?
|
|||
578
Fragster
гуру
05.03.13
✎
17:59
|
кстати, поправь в конфиге постгре максимум соединений, а то у тебя тесты в 112 потоков не выполняются :)
|
|||
579
Fragster
гуру
05.03.13
✎
18:02
|
(575) ну, максимум стал больше
|
|||
580
Fragster
гуру
05.03.13
✎
18:03
|
ну и до 8 потоков (т.е. до упирания) - все результаты больше
|
|||
581
Hmster
05.03.13
✎
18:04
|
(578) я их закоментировал. он не пережевывает 112 потоков, может и конфиг надо поправить.
|
|||
582
Fragster
гуру
05.03.13
✎
18:05
|
(581) ЕМНИП там по дефолту max connections 100
|
|||
583
Hmster
05.03.13
✎
18:05
|
(580) а потом регрес
|
|||
584
Fragster
гуру
05.03.13
✎
18:06
|
(583) может по памяти проседает (iops)?
|
|||
585
Fragster
гуру
05.03.13
✎
18:06
|
ведь без fsync оно больше нагрузки на память и меньше на диск дает
|
|||
586
Fragster
гуру
05.03.13
✎
18:07
|
или по кэшу процессора
|
|||
587
Hmster
05.03.13
✎
18:11
|
после 16ти потоков диск больше 2Мб не грузит, Проц - 50-70%, память тоже не кушает. Просто операций много, и он не успевает их отрабатывать.
|
|||
588
Fragster
гуру
05.03.13
✎
18:15
|
(587) дело не в количестве сожраной памяти, а в показателе "обмен страниц", или как там его...
|
|||
589
Demiurg
05.03.13
✎
18:17
|
(588) написал в почту
|
|||
590
ansh15
05.03.13
✎
20:35
|
(572) В тонком не пробовал.
(582) Спасибо, напомнил, на сервере с ключом тоже 112 потоков не отрабатывало. |
|||
591
Venberg
06.03.13
✎
01:28
|
Что-то тест не то меряет. У человека на ноутбуке с винтом на 5400 показывает результат как у меня на двух отдельных серверах с СХД. Только у меня 150 пользователей работают. А на ноуте я не думаю что больше 3-4 сможет что-то делать по настоящему.
|
|||
592
Venberg
06.03.13
✎
01:28
|
Я про последние 2 записи в опубликованных.
|
|||
593
Venberg
06.03.13
✎
02:49
|
У меня как-то ровно графики пришли в насыщение около 16 потоков. И все шли вместе около 4500. У других смотрю регистры бухгалтерии убегают раза в два-три выше остальных.
|
|||
594
Fragster
гуру
06.03.13
✎
08:20
|
(593) ну, во первых - в один поток у тебя на разных серверах, а на ноуте - все на одной машине, и у тебя все равно на 20% большк. а во вторых - в 32 потока больше уже на 80% :)
Ну а там, где РБ вылезают вперед - там MSSQL, вроде как. |
|||
595
Fragster
гуру
06.03.13
✎
08:21
|
(593) кстати, если не сложно, заполни информацию о сервере СУБД и нажми "опубликовать" еще раз, пожалуйста.
|
|||
596
ansh15
07.03.13
✎
09:31
|
Отметился еще раз. Тесты больше 64-х потоков закомментировал, потому что тест на синхронизацию для 112-и потоков подвис, хотя max connections поставил 500(и перегрузил postgres), непонятно...
|
|||
597
Fragster
гуру
07.03.13
✎
10:48
|
(596) а после правки конфига постгре рестартовал?
|
|||
598
ansh15
07.03.13
✎
11:45
|
(597) Да.
Потом попробую еще на тонком клиенте. |
|||
599
Fragster
гуру
20.03.13
✎
10:47
|
(544) прикрутил
|
|||
600
Тоненький Клиент
26.03.13
✎
09:35
|
600
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |