Отборное админское

Apr 04, 2014 22:57

Когда-то взялся вести по серверной части библиотеку. В наследство достался сервер с sql и программой АС-Библиотека 3.

Проводил, как полагается, плановое обслуживание sql-сервера, ОС, делал/проверял бэкапы, следил за железом, ну и ещё по мелочи.
В целом система работает как-то, но не ахти. Мне не нравится, но вроде функционал (не без глюков, конечно) свой выполняет. Зарплата не ахти какая, но работа не пыльная, почему бы и нет?

А тут мне выдалось мне времени сделать очередное обслуживание. Много времени! Часов 5.
Всё ещё раз перепроверил, сделал бэкапы внеочередные, и понеслася. А поскольку времени много, то решил покопать сервер на предмет хоть какого-то ускорения работы.

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


Взял Process Monitor Руссиновича (что бы виндовые админы делали без его и компании утилит?).
Вбил в фильтры имя процесса, который является сервером АС-Библиотека, стартовал процесс сервера.
Что я увидел дальше...




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

Добавляю в фильтр монитора Notepad.exe. Открываю текстовый файл, пишу кучу буковок (английских), сохраняю. Монитор показывает обращение к файлу, смещение, процесс записи. И никаких няш-мяш 1-1-1-1-1... А ровно число, равняющееся количеству введённых мной букв. 48. Ни больше, ни меньше.
Не то, чтобы там других цифр не было. Встречается цифра 2. Но редко. Понимаю, что что-то не то. Открываю лог, вижу в основном на английском все записи лога с иногда проскакивающими словами на русском языке. Тут, в общем-то, я понимаю, что цифры в операции записи обозначают количество записанной информации в байтах и позицию, с которой пишется. И логично как бы. Английская буква - 1 байт, русская - 2 байта.
А поскольку 1 журналируемое событие составляет, как правило, 1 строчку, а длина строки равняется от нескольких десятков до нескольких сотен символов, то получается, что на 1 журналироемое событие сервер дёргает файл лога на запись несколько десятков/сотен раз. Обратиться, найти смещение, записать 1/2 байта, процесс повторить.





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



Т.е. вместо одной операции диски дербанятся в десятки и сотни раз больше.

Блин, так и представляю, как сия поделка писалась:

Тимлид: Это что за херня? Кто это сделал?

Разработчики:

Один из: Не, шеф, ну по другому вообще плохо работает

Тимлид: Что, совсем?
Разраб: Разве сильно помешает? Да и кто заметит?

Тимлид: Ладно, похрен.

Разработчики:

Тимлид: Пренебречь, вальсируем. В продакшн, так в продакшн

Так и хочется спросить авторов сего чуда программистской мысли:


Из всего софта, который помню, только zabbix, nginx, антивирусы у нас в стране написаны хорошо.

Остальной софт...

image Click to view



В общем, индусы дешевле, наверно будут при том же качестве.

работа, китаецкая поделка, кривые дизайны, АС Библиотека 3, софт

Previous post Next post
Up