Что такое коронавирус ответы майл ру

Эпидемия коронавируса захватывает все новые страны, и россияне стали серьезно задумываться над тем, как обезопасить себя от страшного вируса. Москва 24 спросила жителей столицы, какие вопросы о коронавирусе волнуют их больше всего. Читайте ответы экспертов в нашем материале.

Не придет ли в Москву коронавирус?


Фото: ТАСС/Андрей Самсонов

В столице коронавирус потенциально ожидается к середине февраля. Такое предположение сделал заместитель директора Национального медицинского исследовательского центра фтизиопульмонологии (НМИЦ ФПИ) Минздрава России Владимир Чуланов. Среди факторов Чуланов называет способность передачи вируса от человека к человеку воздушно-капельным путем, возникновение новых случаев заболеваний в северных провинциях Китая, граничащих с Россией, а также высокий темп прироста заболеваемости.

При этом заведующий кафедрой инфекционных болезней Российского национального исследовательского медицинского университета им. Н. И. Пирогова Владимир Никифоров заверил, что, несмотря на то, что риск завоза в Россию коронавируса есть, "никакой эпидемии не случится".

В Москве и России в целом сейчас делается все возможное для того, чтобы не дать распространиться эпидемии на территории нашей страны. Премьер-министр России Михаил Мишустин подписал распоряжение о закрытии границы РФ на Дальнем Востоке.

А уже прибывших к нам из Китая сейчас в обязательном порядке обследуют при помощи тепловизора. Помимо этого, жителей КНР дополнительно обследуют в отелях, куда они прибыли. Для этого сформировали специальные бригады врачей.

Какие меры принимают жители Китая, чтобы не заболеть?


Фото: AP/Mark Schiefelbein

Наша соотечественница София Костикова, проживающая в Китае, рассказала о том, что все местные жители выполняют рекомендованные местным Минздравом правила. Они ходят в масках, тщательно моют руки и следят за гигиеной. Во многих торговых центрах на входе у посетителей проверяют температуру, а в каждом кафе есть спирт для стерилизации рук.

Также София добавила, что в городе Харбин, где она проживает, нет дефицита масок. Попасть на прием к врачу – тоже не проблема с учетом того, что многие медики вышли на работу с новогодних каникул раньше, чем планировалось. "Перед визитом в больницу можно проконсультироваться с врачом по телефону или онлайн. Он решит, нужно ли с такими симптомами идти в поликлинику или можно ограничиться медикаментами и остаться дома", – рассказала София.

При наличии кашля и лихорадки – признаков коронавируса – людям рекомендуют обращаться сразу в инфекционное отделение, а не в общую больницу, чтобы не создавать риск для окружающих.

Каким путем передается коронавирус?

"В первую очередь мы говорим о передаче воздушно-капельным путем, – говорит главврач медицинской клиники, терапевт Татьяна Романенко. – При чихании и дыхании человек выделяет частички воздуха, где могут содержаться вирусные частицы".

Другой способ – контактно-бытовой. Зараженный коронавирусом человек может просто пройти мимо вас и чихнуть или взяться за ручку двери, за которую потом возьметесь вы.

Романенко также отметила, что в этом случае в опасности оказываются и те, кто был рядом, и те, кто даже не контактировал с больным человеком.

Как отличить коронавирус от ОРВИ?


Фото: Москва 24/Александр Авилов

Отличить обычное ОРВИ или другой вирус от коронавируса человеку довольно сложно, потому что в самом начале заболевания симптомы могут быть одинаковые. Но по некоторым признакам коронавирус обнаружить можно.

Нужно обращать особое внимание на эти симптомы после контакта с заболевшими или сильного переохлаждения. "Важно не отказываться от госпитализации. Если это пневмония не коронавирусной природы, то это очень опасное состояние", – подчеркивает Викулов.

Среди других симптомов терапевт Романенко отмечает слабость, подташнивание, жидкий стул. Все эти случаи были описаны китайскими врачами, работающими с заболевшими коронавирусом.

При любых симптомах сразу обращайтесь к врачу. Сейчас уже создана технология, позволяющая за час после поступления материала в лабораторию определить наличие коронавируса в организме человека. Заболеванию больше подвержены пожилые люди, в особенности отягощенные хроническими заболеваниями.

Как защитить себя от коронавируса?


Фото: РИА Новости/Константин Михальчевский

Минздрав РФ рекомендовал использовать для профилактики и лечения коронавируса препараты "Рибавирин", "Интерферон-бета-1b" и "Ритонавир".
Клинический вирусолог Георгий Викулов рассказал, что "Рибавирин" – это старый препарат, который давно применялся при гриппозной инфекции. "Он достаточно токсичен при системных применениях и при приеме внутрь не очень хорошо переносится людьми, – говорит эксперт. – Сейчас появились более современные препараты с направленным этиотропным действием, поэтому рибавирин практически не используется широко в клинической практике".

Также эксперты рекомендовали тщательно мыть руки и лицо после прихода с улицы. И отметили, что посылок из Китая бояться не стоит, а кварцевание может помочь как средство профилактики.

"Прямо и сейчас": коронавирус выявили во всех регионах Китая

14 марта 2020 г., 13:29


Коронавирусы — это семейство вирусов, которые преимущественно поражают животных, но в некоторых случаях могут передаваться человеку. Обычно заболевания, вызванные коронавирусами, протекают в легкой форме, не вызывая тяжелой симптоматики. Однако, бывают и тяжелые формы, такие как ближневосточный респираторный синдром (Mers) и тяжелый острый респираторный синдром (Sars).

Каковы симптомы заболевания, вызванного новым коронавирусом?

  • чувство усталости
  • затрудненное дыхание
  • высокая температура
  • кашель и / или боль в горле


Симптомы во многом сходны со многими респираторными заболеваниями, часто имитируют обычную простуду, могут походить на грипп. Если у вас есть аналогичные симптомы, подумайте о следующем:

  1. Вы посещали в последние две недели в зоны повышенного риска (Китай и прилегающие регионы)?
  2. Вы были в контакте с кем-то, кто посещал в последние две недели в зоны повышенного риска (Китай и прилегающие регионы)?

Если ответ на эти вопросы положителен, к симптомам следует отнестись максимально внимательно.

Как передается коронавирус?

Как и другие респираторные вирусы, коронавирус распространяется через капли, которые образуются, когда инфицированный человек кашляет или чихает. Кроме того, он может распространяться, когда кто-то касается любой загрязненной поверхности, например, дверной ручки. Люди заражаются, когда они касаются загрязненными руками рта, носа или глаз.

Изначально вспышка произошла от животных, предположительно, источником стал рынок морепродуктов в Ухани, где шла активная торговля не только рыбой, но и такими животными, как сурки, змеи и летучие мыши.

Как защитить себя от заражения коронавирусом?

  • Самое важное, что можно сделать, чтобы защитить себя, — это поддерживать чистоту рук и поверхностей.
  • Держите руки в чистоте, часто мойте их водой с мылом или используйте дезинфицирующее средство.
  • Старайтесь не касаться рта, носа или глаз немытыми руками.

Обычно такие прикосновения неосознанно свершаются нами в среднем 15 раз в час.

  • Носите с собой дезинфицирующее средство для рук, чтобы в любой обстановке вы могли очистить руки.
  • Всегда мойте руки перед едой.
  • Будьте особенно осторожны, когда находитесь в людных местах, аэропортах и ​​других системах общественного транспорта. Максимально сократите прикосновения к находящимся в таких местах поверхностям и предметам и не касайтесь лица.
  • Носите с собой одноразовые салфетки и всегда прикрывайте нос и рот, когда вы кашляете или чихаете, обязательно утилизируйте их после использования.
  • Не ешьте еду (орешки, чипсы, печенье и другие снеки) из общих упаковок или посуды, если другие люди погружали в них свои пальцы.
  • Избегайте приветственных рукопожатий и поцелуев в щеку, пока эпидемиологическая ситуация не стабилизируется.
  • На работе регулярно очищайте поверхности и устройства, к которым вы прикасаетесь (клавиатура компьютера, панели оргтехники общего использования, экран смартфона, пульты, дверные ручки и поручни).


Можно ли вылечить новый коронавирус?

Не существует специфического противовирусного препарата от нового коронавируса так же, как нет специфического лечения от большинства других респираторных вирусов, вызывающих простудные заболевания.

Вирусную пневмонию, основное и самое опасное осложнение коронавирусной инфекции, нельзя лечить антибиотиками. В случае развития пневмонии, лечение направлено на поддержание функции легких.

Есть ли вакцина для нового коронавируса?

В настоящее время такой вакцины нет, однако в ряде стран уже начаты ее разработки.

В чем разница между коронавирусом и вирусом гриппа?

Коронавирус и вирус гриппа могут иметь сходные симптомы, но генетически они абсолютно разные. Вирусы гриппа размножаются очень быстро — симптомы проявляются через два-три дня после заражения, а коронавирусу требуется для этого до 14 дней.

Кто в группе риска?

Люди всех возрастов рискуют заразиться вирусом. В заявлении комиссии по здравоохранению Ухани говорится, что возраст 60 самых последних случаев составляет от 15 до 88 лет.

Однако, как и в случае большинства других вирусных респираторных заболеваний, люди старшего возраста и люди с ослабленной иммунной системой в зоне риска тяжелого течения заболевания.

Рекомендации российским туристам, выезжающим за рубеж, по профилактике коронавирусной инфекции

В целях профилактики случаев заболеваний, вызванных новым коронавирусом, российским туристам, выезжающим за пределы РФ, рекомендуется:

  • при планировании поездок уточнять эпидемиологическую ситуацию;
  • не посещать рынки, где продаются животные, морепродукты;
  • употреблять только термически обработанную пищу, бутилированную воду;
  • не посещать зоопарки, культурно-массовые мероприятия с привлечением животных;
  • использовать средства защиты органов дыхания (маски);
  • мыть руки после посещения мест массового скопления людей, перед и после приема пищи;
  • при первых признаках заболевания обращаться за медицинской помощью в лечебные организации, не допускать самолечения;
  • при обращении за медицинской помощью на территории Российской Федерации информировать медицинский персонал о времени и месте пребывания в странах с неблагополучной эпидемиологической обстановкой.

Кому и где проводится тест на коронавирус?

Если у пациента имеются клинические проявления острой респираторной инфекции (повышение температуры, насморк, кашель и т.д.) и он за последние 14 дней посещал страны с неблагополучной эпидемиологической ситуацией по новой коронавирусной инфекции или имел тесный контакт с больным, у которого этот диагноз был подтвержден, ему необходимо вызвать на дом скорую медицинскую помощь. Такие пациенты с целью верификации диагноза и недопущения возможного распространения инфекции госпитализируются в инфекционную больницу до выяснения причин.

При госпитализации в стационар у пациента берут анализы (мазки из носоглотки) на респираторные инфекционные заболевания, в том числе и на новый коронавирус. Биоматериал направляется на исследование в соответствующие лаборатории, срок проведения исследования обычно не превышает 1-2 дней. Если по результатам исследований диагноз новой коронавирусной инфекции не подтвердится, пациент перемещается в общую палату, где продолжается лечение ОРВИ, либо, при отсутствии дальнейшей необходимости круглосуточного наблюдения, выписывается, но не ранее, чем через 14 дней после контрольных мазков.

В Нижнем Новгороде зарегистрирован первый случай коронавирусной инфекции. Что нужно знать о новом коронавирусе, чтобы защитить себя и своих близких — читайте в нашем материале, подготовленном по официальным данным Всемирной организации здравоохранения и Роспотребнадзора России.

Что такое коронавирус?

Коронавирус — целая группа высокопатогенных вирусов, вызывающих респираторные заболевания. Эти вирусы общие для человека и животных. К таким, например, относится уже известный тяжелый острый респираторный синдром (SARS), или, как его еще принято называть, атипичная пневмония. Новый вид — нКоВ или COVID-19 — пока плохо изучен, ранее он у человека не выявлялся. Впервые этот тип коронавируса был выявлен в декабре 2019 года в китайском городе Ухань.

Чем опасен коронавирус?

Судя по тому, что уже известно ученым, наибольшую опасность он представляет для пожилых людей, а также тех, кто страдает хроническими респираторными заболеваниями, сердечно-сосудистыми заболеваниями, артериальной гипертензией, диабетом. У детей и молодых людей заболевание протекает, как правило, в легкой форме с симптомами, схожими с обычным ОРВИ, но у людей, находящихся в группе риска, он может вызвать вирусную пневмонию, тяжелый острый респираторный синдром, почечную недостаточность и смерть.

Каковы симптомы заболевания коронавирусной инфекцией?

Повышенная температура, утомляемость, одышка, затрудненное дыхание, сухой кашель. Инкубационный период, когда признаки заболевания могут не проявляться, занимает от 1 до 14 дней.

Как передается коронавирус?

Больной человек распространяет коронавирус при кашле или чихании: микроскопические капли оседают на поверхностях, предметах, одежде, коже других людей, и, касаясь сначала этих поверхностей, а затем своего рта, носа или глаз, можно заразиться. Заразиться можно и при вдыхании таких капель, поэтому важно держаться от больного человека на расстоянии не менее 1 метра.

Важно! Всемирная организация здравоохранения предупреждает о риске заражения коронавирусом от инфицированного человека, который не имеет симптомов респираторного заболевания, то есть на ранней стадии заболевания, во время инкубационного периода.

Сколько времени вирус живет на поверхности?

Поведение нового коронавируса еще плохо изучено, но известно, что распространенные типы коронавирусов могут выживать на открытой поверхности от нескольких часов до нескольких дней в зависимости от влажности и окружающей температуры.

Что опаснее: коронавирус COVID-19 или грипп?

Тяжелая форма заболеваний, вызванных обоими вирусами может быть смертельной. Но вирус гриппа существует уже давно и его разновидности довольно хорошо изучены учеными. Поэтому современная медицина при своевременном обращении пациента может эффективно бороться с осложнениями гриппа. Коронавирус COVID-19 пока плохо изучен, против него нет вакцин, а почему происходят осложнения, ученые не знают.

Уровень смертности при коронавирусе выше, чем при гриппе. Умерших от гриппа в мире, конечно же, больше, чем от коронавируса, потому что грипп существует давно и во всех странах, но процент умерших от общего количества заболевших при COVID-19 выше, чем при гриппе. По данным Всемирной организации здравоохранения, смертность от сезонного гриппа по всему миру составляет 1% от заболевших, смертность от нового коронавируса — 3,4%.

Опасность коронавирусной инфекции еще и в том, что зараженный человек может долгое время быть источником инфекции, сам того не подозревая: симптомы могут проявиться только через две недели, в то время как при гриппе инкубационный период — всего 1-5 дней.

Как защититься от коронавирусной инфекции?

Роспотребнадзор дает главную рекомендацию — поддерживать в чистоте руки и все поверхности, к которым вы прикасаетесь. Мыть их с мылом или использовать дезинфицирующее средство.

Не касаться рта, носа, глаз немытыми руками.

Не есть еду из общих упаковок или из общей посуды.

По возможности избегать рукопожатий, приветственных поцелуев в щеку.

Держаться на расстоянии не менее одного метра от кашляющих или чихающих людей.

Что делать жителю Нижегородской области при подозрении на коронавирусную инфекцию?

Если у вас появились симптомы респираторного заболевания, то нужно обратиться в поликлинику по месту жительства или вызвать врача на дом.

Если за последние две недели вы посещали страны, в которых зарегистрированы множественные случаи заражения коронавирусом COVID-19 (Китай, Южная Корея, Италия, Иран), то нужно об этом обязательно сказать врачу.

После оценки симптомов врач примет решение о лабораторном исследовании крови с использованием тест-систем на наличие новой коронавирусной инфекции. Исследование проводится в Нижегородском НИИ эпидемиологии и микробиологии имени академика И.Н. Блохиной.

Где получить информацию?

В конце декабря 2019 года в Китае зафиксировали вспышку ранее неизвестного заболевания. Симптомы вполне обычные, похожие на стандартную простуду, но последствия могут быть самыми непредсказуемыми, вплоть до летального исхода. Эпидемиологи встревожены — число заболевших с каждым днём растёт, а вакцину, способную остановить распространение нового коронавируса, до сих пор не создали.

Корреспондент A42.RU собрал в одном материале ответы на распространённые вопросы о новом коронавирусе из Китая.


Что это за вирус?

Первые случаи заражения были зафиксированы в конце декабря 2019 года в городе Ухань, на рынке морепродуктов. Эксперты предположили, что вирус был получен из морских продуктов, продававшихся на этой торговой площадке. Однако руководитель группы здравоохранения, расследующей вспышку заболевания, Чжон Наньшан подтвердил, что вирус передаётся от человека к человеку воздушно-капельным путём.

Новый коронавирус получил название 2019-nCoV. Это опасный штамм вируса, который обладает атипичными и патогенными свойствами. Анализ ДНК инфекции показал, что она схожа с вирусом SARS, вспышка которого была зафиксирована в 2002 году (заразились более 8 000 человек, погибли — 774). Именно поэтому эпидемиологи и всё медицинское сообщество обеспокоены вспышкой коронавируса в Китае. В том числе Всемирная организация здравоохранения (ВОЗ) собрала экстренное совещание на эту тему.

Сколько уже заражены?

По официальным данным Национальной комиссии по здравоохранению Китая, на 23 января 2020 года число заразившихся коронавирусом 2019-nCoV составляет 571 человек. Уже погибли 17 пациентов. Инфекция распространилась и за пределы города Ухань и прилегающей к нему провинции Хубей — по четыре случая зафиксированы в Таиланде, два — в Гонконге, по одному — в Макао, на Тайване, в Южной Корее, Японии и США. При этом эксперты считают, что есть вероятность заражения до 2 000 человек.


Учёные работают над вакциной от нового вируса?

Специфического лечения нового вируса пока не существует, однако пациентам сейчас могут назначать уже давно разработанные и показавшие свою эффективность антивирусные препараты.

При этом новый коронавирус активно изучают учёные. Есть сведения, что уже производят коронавирусы одного цикла размножения. Это значит, что он может попасть в организм, один раз размножиться, а затем инактивироваться. По сути, в будущем на основе этого могут создать вакцину, которая позволит организму вырабатывать иммунный ответ на инфицирование.

Точно известно одно — в России уже создали два независимых средства для диагностики. Одно выявляет сам коронавирус 2019-nCoV, второе позволяет диагностировать заболевание, вызванное данным вирусом, и атипичную пневмонию. Для анализа берётся образец из носоглотки человека с симптомами заболевания. Результаты получают в течение 2-4 часов.

А может ли вирус попасть в Россию?

Несколько российских туристов, прибывших из Китая, также экстренно госпитализировали с подозрением на атипичную пневмонию. Однако пока ни один случай не подтвердился. Тем не менее Роспотребнадзор усилил санитарно-карантинный контроль на всей границе нашей страны. На данный момент четыре российских аэропорта уже начали контроль за самочувствием всех пассажиров, прилетающих из Азии.

По словам главного внештатного эпидемиолога Минздрава Николая Брико, угрозы для россиян нет. Он объяснил это тем, что пока экстренную ситуацию не объявили ни ВОЗ, ни Минздрав.

Но стало известно о том, что есть риск заразиться через посылки из Китая. Также Россельхознадзор инициировал проверки багажа и ручной клади пассажиров, прибывающих в Россию из государств Юго-Восточной Азии. Зараза может передаваться через замороженные продукты и посылки, так как коронавирусы хорошо переносят заморозку. В том числе есть вероятность инфицирования через прикосновения к предметам, которых уже касался больной человек.


У меня повысилась температура и начался кашель. Я заразился?

Не обязательно. Симптомы, по которым можно распознать коронавирус, особо не отличаются от признаков того же ОРВИ. В первую очередь речь идёт о высокой температуре (не ниже 38 градусов) и одышке. У некоторых носителей нового вируса зафиксированы кашель с мокротой, постоянная усталость.

Такие симптомы легко спутать с простудными заболеваниями, которые тоже могут быть вызваны РНК-вирусом, но в более лёгкой форме. Поэтому при обнаружении у себя вышеназванных признаков коронавируса нужно тут же обратиться к врачу и не заниматься самолечением.

Как мне не подхватить новый коронавирус?

Главный метод профилактики на данный момент не медицинские меры, а карантин. Так, город Ухань, где зафиксировано больше всего больных, уже закрыли для въезда. Для выезжающих за пределы России разработаны меры предосторожности. Всем туристам и командировочным, особенно тем, кто отправляется в Китай, рекомендуют следовать этим правилам:

  • Не посещать рынки, где продают мясо животных и морепродукты;
  • Не ходить в зоопарки и на культурно-массовые мероприятия, в которых участвуют звери;
  • Нужно использовать маски для защиты органов дыхания, так как инфекция передаётся воздушно-капельным путём;
  • Можно пить только термически обработанную или бутилированную воду;
  • После посещения мест скопления людей и перед приёмом пищи всегда мыть руки.

При первых признаках заболевания необходимо обратиться в медицинскую организацию. В российских учреждениях врачей нужно предупреждать о том, что вы недавно посещали Китай.

В целом Роспотребнадзор рекомендует воздержаться от поездок в КНР до момента, пока ситуация не нормализуется.


В данной статье я постараюсь вспомнить и описать все сложности и подводные камни, которые встречались на пути реализации задач, связанных с проектом Ответы, также расскажу и про архитектуру проекта.

По состоянию на 15 октября 2012 года, проект посещали в среднем 3,5 млн. уникальных посетителей в сутки.

Визитной карточкой проекта можно было назвать скрин, который, уверен, всем очень хорошо знаком


Набор используемых технологий выглядел следующим образом:

  • CentOS 5 i386
  • mod_perl под Апачем
  • Nginx
  • SQL — база данных
  • раскладка кода в бой с помощью rsync

Архитектура:


имяпредназначениеcpuram, Gbhddпримечание
primusфронт2xE550482 x sataточка входа, балансер
alphaбек2xXeon старые22 x scsiна нем пускаем все кроновые скрипты
argonбек2xE550482 x sata
butanбек2x E550642 x sata
lunaбек2xE540582 x sataтут крутилась wap и m версия
oktanбек2xE540582 x sata
metanбек2xE550642 x sata
propanбек2xE540542 x sata
radonбек2xE550482 x sata
neonбек2xE5-2620162 x sataновый
nitrogenбек2xE5-2620162 x sataновый
plasmaбек2xE5-2620162 x sataновый
titanбаза2 x E5620964sata + 20sasмастер
buranбаза2 x E5620642 sata + 4 ssdосновная реплика
maximusбаза2 x 5110322 sata + 4 scsiреплика для админки
minimusбаза2 x 5110162 sata + 4 scsiреплика для админки
colossбаза2 x 513086 scsiбаза комментариев
Проблемы:
  • нестабильность проекта
  • специалистов в отделе эксплуатации для данной SQL-базы мало, когда падает база, то не всегда доступен тот единственный спец, который может понять, что и почему
  • вечная проблема отставания реплик, решать ее некому
  • разработка нового функционала затруднена, так как 90% логики внутри базы

Задача от руководства

Обеспечить стабильную работу сервиса и возможность его дальнейшего развития, в частности, запустить мобильную версию.

Миграция на Mysql и вынос логики процессов в перлячку — решит большинство наших проблем.

Первым делом подняли мониторинг. Про него писал в статье (кстати,
переписал его на AnyEvent, производительность выросла с 50 до 240 тыс. строк в секунду).

Он открыл глаза на следующие вещи:

  1. Падаем каждый день!
  2. Огромный фон ошибок 504, в сутки примерно 50 тыс.

В чем причины 504?
  • Медленный HTML-парсер, он делает свою работу при отображении странички вопроса, то есть на лету.
  • Боты, которые скачивают контент.
  • Яндекс и Гугл индексируют.

Пришло письмо из Яндекса:

Всплыла еще одна проблема: на балансере у нас стоит ограничение 1 запрос в секунду с одного IP, если его увеличить, то не справляемся с нагрузкой.

Поскольку для проекта Ответы поисковый трафик — это самое важное, то действовать нужно быстро. Все нервничают, обстановка накаляется =).

Из самого простого, легкого и дешевого — докупили 3 бекэнда: neon, plasma и nitrogen. Добавили оперативки в балансер primus), включили в nginx кеширование html для всех неавторизированных пользователей, которых примерно 40%. Ограничение на балансере увеличили до 15 запросов в секунду.

Падать каждый день перестали, Яндекс больше не жаловался на нас. Критичные проблемы решены, теперь можно подумать о задаче.

Забегая вперед, скажу, что в новом API, проблемы с медленным HTML были решены. Мы применили сишный самописный (Perl XS) парсер и парсили только при сохранении в базу. Для почты такое решение не подходит, потому что если кто-то находит XSS, то что бы перепарсить все письма, нужно много времени (5 петабайт данных), поэтому проще и быстрее в парсер добавить защиту и парсить на лету.

Миграция и мобильная версия

Миграция должна удовлетворять двум условиям: сохранение целостности данных и работоспособность проекта 24/7. Поэтому выключить проект и перенести данные — не получится.

Также нужно учесть, что обработчики этой очереди будут работать параллельно, так как поток задач на синхронизацию огромен. У нас в итоге успевало обработаться 12 форков.

Это все нужно для того, чтобы в любой момент времени можно было добавить задачи в очередь и полностью пересинхронизировать нужные сущности.

  • Cron-jobs внутри базы. Тут пришлось реализовывать аналог в новой версии, так как не хотели вмешиваться в код пакета внутри базы.
  • Обычные крон скрипты. Для них мы написали аналогичные в новой версии.
  • Ну и самое коварное, это — триггеры. В нашем случае оказалось, что боевая версия базы отличалась от dev-версии. Поэтому тщательно и скрупулезно проверяйте это.

Каждая из перечисленных выше ошибок стоила 14 дней. Почему так много? Об этом узнаете дальше.

Итак, старая версия умеет писать в очередь, проверяем нагрузку. Раскатываем старую версию сначала на 2 бека, потом еще на 4, смотрим на мускуль, все ок, накатили на все беки, нагрузку держит. Переходим к следующему этапу.

Написали обработчик очереди, который умеет форкаться и следить за чайлдами: если они падают, то он плодит новые. Он берет порцию заданий и пересинхронизирует их, превращая в нужную нам структуру. В будущем мы заметили, что из двух стратегий — запустить 12 форков, из которых каждый разгребает все виды заданий, — медленней, чем запустить 4 форка, которые выполняют задания А, 4 форка которые выполняют задание Б и т. д.

Объясняется это тем, что обработчик очереди помнит сущности, которые он пересинхронизировал за текущий проход, и пропускает их, если встречает опять, а при ограничении типов сущностей вероятность попасть в уже обработанное задание — намного выше.

В итоге научили старую версию писать в очередь, обработчики очереди готовы. В бой запущена старая версия. Очередь копится, но пока что не разгребается.

Теперь нам нужно перенести уже накопленные данные из одной базы в другую. Их порядка 500 гигабайт. Как это сделать? Спасибо Alex Q =)

Миграция больших таблиц (до 1500 миллионов записей) из старой SQL-базы в MySQL. При этом структура может (незначительно) меняться, например, в старой SQL-базе булевы поля были CHAR(1) (hidden может иметь значения '' или 'H'), а в MySQL станут TINYINT (hidden может быть 0 или 1).

  1. Импорт в MySQL через LOAD DATA INFILE пачками по 1000 (по умолчанию, переопределяется ключами запуска) строк, потому что так значительно быстрее, чем через INSERT.
  2. В качестве файла передачи данных использовать FIFO pipe, потому что тогда все данные прогоняются через память без записи на диск. Должен быть существенно быстрее, чем через файлы.
  3. скрипт читает N строк из старой SQL-базы (10000, например).
  4. скрипт отфоркивает дочерний процесс. В этом процессе открывается FIFO на чтение, и из него в MySQL делает LOAD DATA INFILE.
  5. родитель пишет по K строк (1000, например) в fifo. После каждой пачки закрывает файлхэндл пайпа, ждёт выхода дочернего процесса и повторяет с пункта 2, до тех пор, пока не кончатся данные, взятые в пункте 1.

26 февраля 2013 — первый коммит. К 6 марта 2013 готов рабочий вариант. Сделали функцию, которая принимает описание входящей таблицы (старой SQL-базы) и выходной таблицы (MySQL) old_to_MySQL(), и дальше уже всё делается через неё. Для того, чтобы при внезапном факапе не начинать с нуля — храним id последнего смигрированного row для каждой таблицы в MySQL-табличке old_migrate.

Используем LOAD INFILE REPLACE, а не LOAD INFILE IGNORE, чтобы при восстановлении после факапа не потерять изменения данных в старой SQL-базе.

15 марта была временно решена проблема с default-значениями: если из старой SQL-базы приходит NULL, а в MySQL колонка NOT NULL DEFAULT 0, то при попытке вставки NULL мы падаем. Описание схемы теперь имеет набор ключевых колонок, которые обязаны быть, во все остальные мы вставляем DEFAULT, если приходит NULL.

20 марта началась война против SIGPIPE.

Этапы войны:

  • Добавили $SIG, который пытается повторить вызов old_to_MySQL() со старыми параметрами с сохранённой позиции. Долгое время всё работало.
  • 13-14 ноября SIGPIPE strikes back. Починил порядок работы с пайпом: сначала открываем fifo на чтение, потом — на запись. Во время борьбы с сигпайпом добавили croak/carp как замену die/warn, и наткнулись на баг 72467 в Carp (attempt to copy freed scalar), и поменяли всё обратно.
  • Не помогло. Не помог и sleep через секунду после открытия пайпа на чтение. Перелезли на временные файлы. Стало заметно быстрее за счет откручивания всех sleep, которые служили костылями в борьбе с сигпайпом. Стало хорошо.

Война с сигпайпом длилась два дня, 13 и 14 ноября. Это были очень насыщенные два дня.

Пока шел перенос, уже была готова альфа-версия нового API (Perl, fast_cgi).

Перенесли данные, запустили на корпоративных пользователей тестовую мобильную версию. Смотрим, тестируем. Случайно в логах старой версии заметили ошибку, что на одном из беков перлячка ругается на отсутствие модуля DBD. Это значит, что с этого фронта не уходят задания в очередь и базы не консистентны. Оу, шит. Пришлось заново все переносить. Прошло 14 дней =).

Теперь, после переноса данных, можно начать разгребать очередь, а она накопилась огромная, около 300 млн заданий.

Запустили обработчики — слишком медленно. Искали причину тормозов, оказалось, что нужен индекс в табличке, в которой у нас очередь. Ждать опять 14 дней очень не хотелось. Создали еще одну такую же табличку, но уже с индексом. Раскатили старую версию, чтобы она писала в новую табличку с индексом. Это была InnoDB. Добавили индекс. Разгребли и убили табличку. Переименовали все обратно.

Вроде работает. Идем дальше.

Новое API должно уметь писать в обе базы. Пишем асинхронно, чтоб не ждать лишнее время. Для этого в таблицах новой базы делаем запас по id с помощью начальной позиции автоинкремента. Например, в старой базе максимальный id вопроса 1000, тогда в аналогичной таблице новой базы мы ставим начальную позицию автоинкремента 2000.

Добавляем через новое API вопрос, у него получается айдишник 2001, добавляем его в старую базу, там у него айдишник 1001, делаем апдейт в новой базе запись с айдишником 2001 превращаем в запись с айдишником 1001, таким образом айдишники для сущностей будут совпадать в наших базах.

Дальше мы узнали что после рестарта мускуля или альтера таблицы автоинкремент сбрасывается на максимальное значение primary key. Поэтому для избежания этого, добавили в MySQL базу сущности с большим айдишником равным стартовому числу автоикремента.

Все дальнейшие факапы решались вопросом добавления в очередь задач на пересинхронизацию нужных сущностей.

Вспомнил еще один момент: как-то из отдела эксплуатации до нас дошла новость, что, возможно, придется погасить один из датацентров, а учитывая, что мобильная версия уже запущена в бой и тот факт, что сервера со старой базой находятся в этом датацентре, а новые MySQL-базы в другом — стало совсем невесело. Но, к счастью, прогнозы не оправдались.

Представим, что это случилось.

Погасили датацентр с новыми базами — отключаем запись в очередь для синхронизации. После того, как датацентр заработает, кидаем в очередь все сущности, созданные после начала проблем, и тихонечко пересинхронизируем.

В марте запустили в бой мобильную версию. Туда приходило порядка 500 тыс уников в сутки. Нагрузку держим, все работает шустро.

Сделали, раскатили ее на регион Москва. Увидели, что при нагрузке 800 запросов в секунду корится апач. Сначала подозрения упали на mod_fcgid, но оказалось, что виновник mod_rpaf. Спасибо Mons, он мастерски отgdbил корку апача.

Отказались от mod_rpaf, прокидывали айпишник через заголовок X-Real-IP с помощью nginx.

Убрали к чертям ограничение на балансере primus (15 запросов в секунду с одного IP). Нагрузку держим полет нормальный. Примерно 950 запросов в секунду у API.

Посещаемость в среднем 6,5 млн в сутки.

На всех серверах используем CentOS 64bit, выкатка в бой происходит посредством RPM пакетов. На данный момент перлячка все еще крутится под апачем2 (mod_fcgid). После того как yum накатил пакетик, по очереди перезапускаем беки.

То есть, если пользователю придет 502 или 504, то его пустит на другой бек, таким образом минимизируем дискомфорт из-за рестарта апача.

Графики по нагрузке можно посмотреть тут.

Надеюсь, что данная заметка поможет вам не наступать на те грабли, по которым прошлись мы! Помните, лучше учиться на чужих ошибках, чем на своих! :)

Читайте также:

Пожалуйста, не занимайтесь самолечением!
При симпотмах заболевания - обратитесь к врачу.

Copyright © Иммунитет и инфекции