И все-таки это случилось

То, что я не смог осуществить, на что решиться, 10 месяцев назад, осуществилось сегодня. Мой последний день. Он был такой… непонятный. И по настроению тоже. Удивительно, как много новых людей в компании я каким-то образом смог заинтересовать, но сегодня всему этому пришел конец. Останется, видимо, только виртуальное общение. Очень хочется, чтобы ребятам, в комнате с которыми я провел не один год и которые стали как родные (потому что обсуждения создают впечатления, что я знаю все про их жизнь, а они про мою), на мое место/должность посадили более веселого и умного человека, чем я, чтобы все стало еще лучше.

Я не сказал многим «до свидания». Думаю, все меня поймут. Помню, в детстве на летних каникулах в деревне я читал книгу «Пеппи Длинный чулок». Читал я ее все лето, потому что никогда не любил читать, да и всегда было веселее пойти купаться на речку или на веранде порезаться в «дурачка». И вот, когда спустя 2-3 месяца я ее дочитал, мне стало грустно, даже, помню, проступили слезы, потому что история закончилась. Закончился такой большой для меня этап, пережитая совместно история уходит в прошлое. Сейчас я взрослый и реветь, безусловно, не собираюсь, но погрустить можно.

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

Трудности

Всегда удивляюсь, насколько человек существо приспосабливающееся. В самой его натуре, наверное, как в звере, есть инстинкт самосохранения и выживания. Иногда для этого надо быть умным, иногда бесстрашным, иногда агрессивным, а иногда активным. Мне есть. что сказать, но это было бы некорректно, поэтому я промолчу. Почти 5 лет заканчиваются через 2 дня. Довольно большой срок… Все, что мне было надо сделать, это подписать бумажку. Больше ничего не нужно… никому.

Сейчас я думаю, что во всех этих поисках дальнейшего занятия есть определенный смысл. Смысл не только в цели, в нахождении, а в самом процессе, общении. Из общения столько всего узнается и познается. Пропадает страх, неловкость. Как сказать, что я не знаю или не могу. Я такое могу обычно сказать только в моменты злости или ярости. В ином случае я бы просто разобрался. Я человек, который любит копаться в деталях, интроверт, но при этом мне интересна внешняя составляющая того продукта, что я делаю. Жаль, что во мне нет деловитой жилки, я бы открыл бизнес и построил все иначе. Правильно было сказано: «Well done is better than well said.» Benjamin Franklin

Потоки и процессы

Процесс — адресное пространство с кодом программы, данными, какие-то внешние ресурсы. Грубо говоря, это объединение общих ресурсов. В рамках процесса выполняется поток — это исполняемый код, который держит свое состояние и данные в стэке и регистрах.

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

Чем же в приближении отличается Apache от nginx? Прежде всего тем, что Apache по сути под каждое соединение держит отдельный большой процесс, который работаю от момент открытия соединения с клиентом, до момента отдачи ему данных и закрытия. В приближении в режиме prefork под каждый новый запрос создается отдельный процесс. В режиме worker задается определенное кол-во процессов, в каждом несколько потоков, которые уже обрабатывают соединения. Похожая схема в nginx, только в apache при этом еще куча различные обвешенных модулей, поэтому это все равно громостко.

В nginx же все проще (хотя apache в режиме worker очень похож на логику работы nginx): задается какое-то кол-во процессов (чаще всего равно кол-ву процессорных ядер в систем), и для каждого задается какое-то кол-во потоков (стоить учесть максимальное кол-во возможных открытых файловых дескрипторов). Каждое соединение отправляется на отдельный поток. Задача nginx — это получить запрос от клиента и отдать ему на это результат работы бэкенда (apache в нашем случае). Отдавать и получать он может долго, но на это тратится минимум ресурсов. Именно на такую быструю и легкую работу он нацелен, прекрасно справляется с «медленными клиентами», существенно разгружая тяжеловесную часть apache, которая занимается генерацией всей информации.

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

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