Comments 34
Было бы также интересно тестирование в условиях высокой нагрузки/нестабильно работы локальной сети.
Это проще. Идём на рутрекер и лёгким движением руки обеспечиваем высокую нагрузку и нестабильную работу локальной сети.
А интересная мысль про рутрекер, но как придать на рутрекере этой нестабильности какой-то определнный характер: сильная загрузка… слабая загрузка… сильная загрузка и т.п. Да и интернет не везде есть.
Однако такой вопрос про сеть в своей программе я тоже не решил. Я просто по полной загружал сеть. сначала сделал в несколько потоков отправку пингов в бешеном количестве, но потом вспомнил, что «убить» машину отправляя на неё пинги почти невозможно. Если времени на пинг нету — машина просто не реагирует на них.
После этого сделал отправку/прием пакетов по UDP в несколько потоков. Это решило проблему по сильной нагрузки на сеть, а менять нагрузку со временем я уже не стал.
Однако такой вопрос про сеть в своей программе я тоже не решил. Я просто по полной загружал сеть. сначала сделал в несколько потоков отправку пингов в бешеном количестве, но потом вспомнил, что «убить» машину отправляя на неё пинги почти невозможно. Если времени на пинг нету — машина просто не реагирует на них.
После этого сделал отправку/прием пакетов по UDP в несколько потоков. Это решило проблему по сильной нагрузки на сеть, а менять нагрузку со временем я уже не стал.
Рутрекер не даст хорошей нагрузки, или это будет слишком дорого. (Сколько там стоит 10G канал до M-IX?)
Загрузка процессора user-space вещами — это ерунда. Вот trashing в районе PCI-E, вот это да, это сила. Я один раз такое наблюдал из-за бага в драйвере самого PCI-E. Симптомы были крайне необычные: 0% загрузки всех, LA зашкаливает, банальная ls отрабатывает десятки секунд, скорость на диске стремится к сотням килобайт, лагает сеть, лагает текстовая консоль, лагает всё — и никаких признаков того, что система упёрлась в боттлнек, то есть нет самого боттлнека. Вот там да, там было очень сурово… А перезагруженный всякой ерундой процессор — это не особо интересно. Всё равно все RT-секции ядра (например, верхние половинки прерываний) отработают со скоростью процессора, сколько бы вы их не грузили.
Все правильно говорите. Действительно, причин «трешинга» может быть огромная куча, так же как и следствий. Но задача, которую я описал в статье несколько проще, чем «имитировать полный треш на всех аппаратных и программных уровнях».
Нехватка процессорного времени для программы может вызвать и вскрыть некоторые ошибки, которые может никогда не проявятся до тех пор, пока программа не заработает на объекте вместе с кучей других прожорливых программ. А тестировать программисту свою программу на своем месте, запуская всю эту кучу программ у себя, и сидеть ждать, когда там что-то займет много времени и слетит — дело неблагодарное.
Говорю не просто так — таким образом имитированная нагрузка действительно позволила поймать ошибку, которая возникала раз в несколько суток, и выявить пару других недоработок.
Ну а способ оценки с помощью временных «шкал» позволяет оценить работу программы или совместно нескольких программ, но естественно лишь с одной из сотен сторон.
Нехватка процессорного времени для программы может вызвать и вскрыть некоторые ошибки, которые может никогда не проявятся до тех пор, пока программа не заработает на объекте вместе с кучей других прожорливых программ. А тестировать программисту свою программу на своем месте, запуская всю эту кучу программ у себя, и сидеть ждать, когда там что-то займет много времени и слетит — дело неблагодарное.
Говорю не просто так — таким образом имитированная нагрузка действительно позволила поймать ошибку, которая возникала раз в несколько суток, и выявить пару других недоработок.
Ну а способ оценки с помощью временных «шкал» позволяет оценить работу программы или совместно нескольких программ, но естественно лишь с одной из сотен сторон.
> Я являюсь участником разработки автоматизированных систем управления высокой надежности, которые применяются на электростанциях, космодромах, сложных производствах и т.п.
С чем связан выбор винды и дельфи для софта для таких мест?
С чем связан выбор винды и дельфи для софта для таких мест?
Дело в том, что винда — одна из нескольких осей, которые используются: винда, линукс, QNX, dos. Каждая ось — для своих задач. Винда используется в тех частях системы, где предполагаются пользователи, несколько далекие от компьютеров. Примерами у нас могут служить инженеры-технологи, которые составляют и вбивают технологические алгоритмы, или операторы, которые собственно управляют на мнемосхемах всей системой, тестировщики стоек и т.п.
Выбор языка в самой винде тоже не однозначен в сторону дельфи. Используется и С++.
Для драйверов и подобных программ используется С, для программ, где много окон, кнопок и т.п. используется дельфи. Вы скажите, что можно C builder использовать — да, но есть еще фактор «не переделывать же все» =)
Выбор языка в самой винде тоже не однозначен в сторону дельфи. Используется и С++.
Для драйверов и подобных программ используется С, для программ, где много окон, кнопок и т.п. используется дельфи. Вы скажите, что можно C builder использовать — да, но есть еще фактор «не переделывать же все» =)
Несколько некорректно выразился:
«где предполагаются пользователи, несколько далекие от компьютеров»
скорее хотел написать вот так:
пользователи-специалисты не сколько в компьютерах, сколько в самих технологических процессах, для которых мы производим системы. Ну смысл понятен.
«где предполагаются пользователи, несколько далекие от компьютеров»
скорее хотел написать вот так:
пользователи-специалисты не сколько в компьютерах, сколько в самих технологических процессах, для которых мы производим системы. Ну смысл понятен.
Не совсем, если честно.
В моём представлении, пользователь (оператор) в таких системах — это не вчерашняя домохозяйка или школьник. Их учат работать, учат пользоваться рабочими инструментами (т.е. и программами тоже). Т.е. конкретно функциями винды (или, боже упаси, dos), им пользоваться не надо (клипборд, перетаскивание файликов, буквы дисков, кнопки окошек), а надо специализированной программой, которой без разницы, на чем работать — вопрос только в требованиях к условиям (я так понимаю, что у космодрома особые требования именно к надежности, а привычность пользователя к цвету заголовка окна явно не была в требованиях к проекту и близко).
Поправьте, если я не прав.
В моём представлении, пользователь (оператор) в таких системах — это не вчерашняя домохозяйка или школьник. Их учат работать, учат пользоваться рабочими инструментами (т.е. и программами тоже). Т.е. конкретно функциями винды (или, боже упаси, dos), им пользоваться не надо (клипборд, перетаскивание файликов, буквы дисков, кнопки окошек), а надо специализированной программой, которой без разницы, на чем работать — вопрос только в требованиях к условиям (я так понимаю, что у космодрома особые требования именно к надежности, а привычность пользователя к цвету заголовка окна явно не была в требованиях к проекту и близко).
Поправьте, если я не прав.
Да, применительно к операторам — вы правы — они редко пользуются чем-то кроме определенной программы, хотя бывает, что нужно что-то кроме…
Но есть еще, например, инженеры-технологи. Они работают с программами, которые собственно на объекте и не устанавливаются, а устанавливаются только файлы-результаты работы тех программ.
А вот им как раз важен привычный виндоус, ворд, эксель, документации, почта, файлики, картинки даже скайп для связи или аська. Ну вообщем все-все.
Надеюсь ответил на ваш вопрос.
Но есть еще, например, инженеры-технологи. Они работают с программами, которые собственно на объекте и не устанавливаются, а устанавливаются только файлы-результаты работы тех программ.
А вот им как раз важен привычный виндоус, ворд, эксель, документации, почта, файлики, картинки даже скайп для связи или аська. Ну вообщем все-все.
Надеюсь ответил на ваш вопрос.
Да, вполне.
Можно еще вопрос?
Винда, хотя бы, в самых ответственных местах не используется?
Повисший скайп не приведёт к выводу всех стержней из реактора? «О-оу» из аськи не вызовет отключение маршевых двигателей через пару секунд после отрыва от площадки?
Можно еще вопрос?
Винда, хотя бы, в самых ответственных местах не используется?
Повисший скайп не приведёт к выводу всех стержней из реактора? «О-оу» из аськи не вызовет отключение маршевых двигателей через пару секунд после отрыва от площадки?
Самое ответственное место, где используется винда — пульт оператора.
Разделяю ваши опесения, но образно говоря — там используется три винды одновременно (три дублирующих друг друга компьютера и монитора) повисание одного компа не повлечет никаких последствий. Сами алгоритмы управления и т.п. крутятся не пульте оператора. Так что в принципе все нормально.
Ну а выбор винды для пульта оператора мне думается исторический, хотя тут могу ошибаться.
Разделяю ваши опесения, но образно говоря — там используется три винды одновременно (три дублирующих друг друга компьютера и монитора) повисание одного компа не повлечет никаких последствий. Сами алгоритмы управления и т.п. крутятся не пульте оператора. Так что в принципе все нормально.
Ну а выбор винды для пульта оператора мне думается исторический, хотя тут могу ошибаться.
Кстати, насчет реакторов и винды. Совсем недавно (в 2005-2010) на некоторых АЭС заменили систему СКАЛА на СКАЛА-микро. «Родная» СКАЛА это огромная ЭВМ, собранная на элементах малой интеграции, использующая магнитную ленту и т.п. Считала преимущественно в восьмеричной системе счисления, поддерживала многозадачность (несколько циклически исполняемых расчетных и регистрирующих программ) и учитывала порядка десяти тысяч измеряемых параметров в реальном времени. И все это в 1973 году.
У меня лично к таким системам больше доверия, чем к винде. Пусть и в трех экземплярах.
Хотя бы потому, что эта система специально проектировалась для АЭС. В отличии от ОС общего назначения для домохозяек.
Хотя бы потому, что эта система специально проектировалась для АЭС. В отличии от ОС общего назначения для домохозяек.
Ну вы зря так категоричны. Многолетний опыт использования в том числе и виндовс в подобных задачах не дал повода усомниться в надежности и своих остальных плюсах. Трудности есть, ну а куда без них. Главное — прямые руки.
Тем более, что есть с чем сравнивать. Заказчики разные — кто-то хочет линукс, кто-то виндоус, кто-то дос.
Тем более, что есть с чем сравнивать. Заказчики разные — кто-то хочет линукс, кто-то виндоус, кто-то дос.
> Многолетний опыт использования в том числе и виндовс в подобных задачах не дал повода усомниться в надежности
Вспоминается застопорившийся эсминец под управлением NT. Ну ещё зависший ноут у Гейтса на презентации, но это мелочи.
При всех достоинствах винды, это не система реального времени. Ставить её на управление чем-то сложнее станка — нафиг-нафиг.
Вспоминается застопорившийся эсминец под управлением NT. Ну ещё зависший ноут у Гейтса на презентации, но это мелочи.
При всех достоинствах винды, это не система реального времени. Ставить её на управление чем-то сложнее станка — нафиг-нафиг.
Хотя Stuxnet показал, что все системы падают. Но есть разница — падение от внешних воздействий или падение из-за глюков в самой системе.
Честно говоря, не могу с вами не согласиться!
Когда приходил на эту работу — был несколько удивлен выбором windows для некоторых задач. Однако, годы сгладили мое недоумение.
Что касается того, что думает начальство — вы же понимаете, что для кого-то ваши слова — аргумент, для кого-то — случайность, для кого-то — кривые руки. И спорить тут порой бесполезно…
Когда приходил на эту работу — был несколько удивлен выбором windows для некоторых задач. Однако, годы сгладили мое недоумение.
Что касается того, что думает начальство — вы же понимаете, что для кого-то ваши слова — аргумент, для кого-то — случайность, для кого-то — кривые руки. И спорить тут порой бесполезно…
А скачать где можно?
Мне кажется, гораздо хуже вещи, которые вызывают постоянные обращения к диску, например своп, выделение больших объемов памяти, случайные чтения/запись в несколько потоков. Работа с видекартой через DirectX (чтобы тормозил графический интерфейс).
И да, я тоже считаю, что использовать кривую не-мандатно-настроенную винду с дельфи на таких объектах ненадежно и непрофессионально. В ней слишком много лишних функций. И она *не предназначена* для использования на серьезных объектах, Windows — это ОС в первую очередь для использования на рабочих станциях без выскоих требований к надежности. Вам туда установят американцы какой-нибудь вирус или троян, ракета уйдет не на ту орбиту, и никто отвечать за это не будет, а деньги на разработку естественно уже все попилены.
Вам бы стоило заодно всякими зиродей эксплойтами и зараженными флешками все это тестировать.
И да, я тоже считаю, что использовать кривую не-мандатно-настроенную винду с дельфи на таких объектах ненадежно и непрофессионально. В ней слишком много лишних функций. И она *не предназначена* для использования на серьезных объектах, Windows — это ОС в первую очередь для использования на рабочих станциях без выскоих требований к надежности. Вам туда установят американцы какой-нибудь вирус или троян, ракета уйдет не на ту орбиту, и никто отвечать за это не будет, а деньги на разработку естественно уже все попилены.
Вам бы стоило заодно всякими зиродей эксплойтами и зараженными флешками все это тестировать.
Да, чтение/запись в несколько потоков и выделение больших объемов памяти — все есть.
Более того не просто выделение большого объема памяти, но и тестирование при постоянном забивании памяти все больше и больше. Т.к. если просто занять память например 10 ГБ, толку от этого не будет — часть уйдет в файл подкачки, в реальной оперативке освободится несколько мегабайт и все.
Уважаемые Хабралюди, возможно я не так выразился, ЕСТЕСТВЕННО винда используется не обычная с рутрекера или прилавков магазинов, а так сказать ручной сборки.
Так же используются вндовзы, которые поставляются не нашей компанией.
Более того не просто выделение большого объема памяти, но и тестирование при постоянном забивании памяти все больше и больше. Т.к. если просто занять память например 10 ГБ, толку от этого не будет — часть уйдет в файл подкачки, в реальной оперативке освободится несколько мегабайт и все.
Уважаемые Хабралюди, возможно я не так выразился, ЕСТЕСТВЕННО винда используется не обычная с рутрекера или прилавков магазинов, а так сказать ручной сборки.
Так же используются вндовзы, которые поставляются не нашей компанией.
У Microsoft имеется же целый пакет для подобного тестирования. Вообще оно чтобы получить сертификат, но также и просто для тестирования софта, позволяет воспроизвести практически любые нагрузки на систему/железо или не стандартное поведение. Рушить память, забивать диск, убивать GDI подсистему и еще сотни других вещей, там целый dvd диск.
Интересно бы взглянуть, не поделитесь линком?
Спасибо, действительно хорошая штука, запишу себе.
Там есть подобный тест, вот что нашел в этой большой массе на сайте майкрософта по теме топика:
msdn.microsoft.com/ru-ru/library/windows/hardware/hh439324
заставляет уснуть систему.
Поддерживается много языков, и так или иначе — программировать все равно придется, и имитировать тот самый «управляемый хаос» с заданным распределением тоже придется ручками, если захочется сделать подобный тест. Принцип останется прежним, средство достижения поменяется.
Скорее всего их
заставляет уснуть очень основательно. Интересно поразмыслить над тем, как они это сделали.
Ну а что касается оценки, на сколько программа, в каком количестве, с каким распределением устраивает сама эти sleep, такого судя по всему у них пока что нет.
Там есть подобный тест, вот что нашел в этой большой массе на сайте майкрософта по теме топика:
msdn.microsoft.com/ru-ru/library/windows/hardware/hh439324
заставляет уснуть систему.
Поддерживается много языков, и так или иначе — программировать все равно придется, и имитировать тот самый «управляемый хаос» с заданным распределением тоже придется ручками, если захочется сделать подобный тест. Принцип останется прежним, средство достижения поменяется.
Скорее всего их
HRESULT Sleep(
[in] LONG nSleepState
);
заставляет уснуть очень основательно. Интересно поразмыслить над тем, как они это сделали.
Ну а что касается оценки, на сколько программа, в каком количестве, с каким распределением устраивает сама эти sleep, такого судя по всему у них пока что нет.
Спасибо, тоже хорошая вещь! Жаль, что идет только вместе с Visual Studio Ultimate.
И на сколько я понял, анализирует программы, написанные непосредственно в VS.
Пора вносить дополнения к топику.
спасибо EndUser, amarao, int80h за дельные ссылки по теме. Жаль кармы на всех не хватило. вношу дополнения
И на сколько я понял, анализирует программы, написанные непосредственно в VS.
Пора вносить дополнения к топику.
спасибо EndUser, amarao, int80h за дельные ссылки по теме. Жаль кармы на всех не хватило. вношу дополнения
Sign up to leave a comment.
Тестирование программ в сложных «погодных условиях»