11:38 29.04.2009БЛОГ · ПОСТ 11:38 29.04.2009 22:54 17.04.200922:44:34 Руслан Мищенко: Здравствуйте! Чем я могу Вам помочь? 22:44:51 a16212 (D-400): Вечер добрый! Когда мой сервер включат? 22:46:25 Руслан Мищенко: Секунду 22:48:12 a16212 (D-400): Ок =) Ждем сутки, подождем и секунду 22:49:58 Руслан Мищенко: Я вижу Вы написали письмо в отдел серверов. 22:50:00 Руслан Мищенко: Здравствуйте еще раз. Я не понял, что за KVM и где мне настраивать сеть. Я как вы мне полгода назад все установили, никуда и ничего не трогал. Я не спец по серв ерам! Я только пользователь! Знаю только минимальные настройки Апач, десяток команд ssh. Все мои знания это php, mysql. Включите пожалуйста сервер? 22:50:48 a16212 (D-400): Да это я письмо отправил 22:51:59 Руслан Мищенко: Я передам администраторам, чтобы ускорили процесс и помогли Вам настроить, сервер, ожидайте Вам ответят на письмо. 08:26 17.04.2009 21:55 11.04.2009Настал сегодня трындец! Ну все, предел... Три дня я в реале все крутился, еще находил время на интернет, хотя бы проверить все ли на месте, не открутили ли шпионы контргайки. А вот сегодня выходной, с утра заглянул в игру. Проблем как всегда требующих моего вмешательства куча. Взялся одну решать, открыл скрипт игры на локалхосте, глянул код, и понял что пусто, не горит ничего, импотент! 2 года я как собака загнанная, сколько мегабайт кодов выдал, сколько сценариев, скриптов, все уже под конец как машина стал выдавать, как мой сервер в Москве с 4-мя ядрами и 4 Гб оперативки. Все клепал, клепал, кодировал, ... Делал ошибки, учился на них, потом героически с ними боролся. Рос мой опыт, знания. Причем даже в мыслях не было открыть учебник, что-то почерпнуть, изучить как делают другие. Все изучал, открывал, применял на уровне логики. Моей собачей логики. Как она меня замучала!!! Вы можете себе представить, что такое выучить php и прочее сопутствующее на уровне логики? Ну это язык, вы можете выучить на уровне логики китайский язык? Не зная перевода на свой родной, просто осознавая, на уровне сознания, что Инь - это Темный, Янь - это Светлый ... Именно осознавать, понимать, что это Темный, а это Светлый, не перевод на русский ... Этот php так крепко мне влез в голову, это как клубок, я три или четыре (уже и это забыл) года назад схватил ниточку, тоненькую ниточку, и стал распутывать клубок, столько я его нараспутывал, что в распутанных нитях стал уже путатся. Опять распутывал, что уже распутанно, стал прясть свои клубочки, свою логику ... Я тут несколько раз жаловался, что устал и прочее. Но предела еще не было, я все равно с болью в голове, пачками сигарет, литрами кофе все копошился, копошился ... А сегодня утром открыл и понял, что пусто, не горит. Извини Nalta (модератор в игре), что вот написал и пропал. Просто лажа в голове, если пытатся, что-то вылепить из этой лажи, то выйдет опять же лажа. Проблемы начались примерно месяц назад, не секрет, что львиную долю моего свободного и несвободного времени кушала игра wmod.ru, за 1,5 года, даже чуть больше накопились обьемы базы данных, тут конечно минус мой, что я так спланировал изначально структуру базы данных. Но кто думал и планировал 1,5 года назад, что в игре наклепают миллион вещей, кроме всего прочего, а карта игры в 400.000 локаций ... каждая занимает строку в таблице базы данных, в итоге такая база выросла с 1-2 мб год назад до 250 мб. Что это значило? Эти данные динамические, игра сама по себе динамическая, нельзя кешировать такие данные, то есть на десяток, сотню запросов пользователя выдать уже запасенный в кеше ответ. Ответ нужно получить с пылу, с жару. Прямиком из печи MySQL! Иначе авария для игры, десять запросов дадут один ответ, глюк для игры. Иначе это достаточно большой обьем данных, количество запросов к базе доходило до 500 в секунду, ну это не так критично, если например таблица содержит 1000 строк, с 2-3 индексами. Но если таблица содержит пол лимона строк, 50 мб? Попробуйте на компе открыть, записать, сохранить текстовой файл обьемом 50 мб? Сколько вы таких файлов можете открыть, записать, сохранить в секунду? Не получилось за секунду? А за сколько? А минута? Это минута один запрос? А если запросов 500 в секунду передаются пользователями к базе данных? Ну хорошо, что сервер неплохой я взял в сентябре, хорошо что там 64-битная операционная система и акселератор. Но и это не спасение... Ну вот я понял, что если все спускать так по тормозам, то рано или поздно тормоза не выдержат и откажут. И в итоге все слетит. Выход был полностью менять структуру игры, базы данных, делать ее более компактной, практичной, оптимизированной. Дабы дать возможность развития игры на минимум пару лет вперед. Почему так получилось с Вмод? Почему Грезы или Бастион держат по 1000 онлайн и более? А вы сравните обьемы функций и данных в этих играх! Одно дело пошаговая БК-система, арена, и совсем другое это полностью интерактивная боевая система в режиме онлайн. Вобщем имеем, то что имеем... Открыл сегодня скрипт и пусто, пусто в голове. Предохранитель прям какой то сработал, выключил, перегорело. И еще вот кризис, если я год уже не смотрел и не переживал за оплату сервера, то в марте задумался, как дальше. Я конечно выкручусь, не так все уж и страшно. И пробки перегоревшие заменю, и включу свет в голове. Только не мешайте мне, это ваша игра, вам она нужна, помогите мне! 08:18 17.03.2009В свое время мне MySQL казался чем то ужасным и страшным, все эти базы, таблицы, запросы, команды... Намного проще и легче было все самому собрать в базу на файл с использованием чтения / записи / перезаписи файла и работы с данными. Помню в свое время частые споры, что лучше база на MySQL или база на файле? Скажу, что все мы тогда были неправы. Мускулисты доказывали, что MySQL намного быстрее и удобнее, не факт, кто хоть немного разобрал внутренности сервера смогу найти все свои базы и таблицы записанные в недрах Апача например в D:\\usr\\local\\mysql5\\data где базы это папки а таблицы это файлы. То есть для записи, перезаписи и прочего используются все теже mkdir, fopen, flock, fwrite, fclose что и вы используете для работы например с базой непосредственно на сайте например log/log.txt. Прирост производительности и скорости тут у MySQL только возможен за счет кампиляции, перевода ваших данных в машинный код. Который уже как бы расшифрован для обработки процессором и оперативкой. Больше вроде нет причин ускорения работы с базой данных MySQL, а если ваш процессор и оперативка перегружены, то возможны еще и тормоза, кампиляция то ведь тоже требует ресурсов. Если смотреть по удобству использования, то здесь все смотрят на Phpmyadmin, но если человек разбирается в программировании то подобную свою панель можно создать и для работы с базами на файле. Безопасность! Здесь конечно минус у файлов, на UNIX требуется установка прав записи 755 или 777 на файлы и если требуется то и папки. В данном случае большую роль играет мастерство программиста сайтов. Если ручки кривые то открыв подобные права на запись, вы можете открыть эти права и для хацкеров, что бы они вам там на сайте записали / перезаписали некую бяку. Решение достаточно просто, использовать дериктивы .htaccess в папках с базовыми файлами. С их помощью можно закрыть доступ в эту папку, к файлам в ней, к файлам определенного расширения по маске, например .txt, .dat, ... Можно запретить выполнение любых скриптов в директории. И конечно не делать ляпы прямо в сценарии работы с подобными базами. А MySQL в этом плане также не безгрешен, конечно глобальной угрозы сайту целиком нет, но угроза вашим данным есть. Во первых смотрите на привелегии пользователей базы данных MySQL, если сценарий не требует, то отключите все лишнее, как то drop, alter, truncate ... Подключите пользователя только к той базе данных, где он нужен, и закройте доступ к другим базам. Не исользуйте права доступа администратора базы данных root в пользовательских скриптах. Фильтруйте все что только можно, все данные что передает юзер в ваш скрипт, все символы, заменяйте на уникоды. Что совсем левое удаляйте. Не стоит показывать MySQL ошибки, это может быть подсказка, ключик для хацкера, прячьте их и еще лучше ведите лог таких ошибок. Не храните пароли в базе данных в чистом виде, храните только хеши паролей (зашифрованные). Делайте ежедневно бэкапы. Даже если что случится, то все можно восстановить. И что же выбрать в итоге? Мускул или файл? Как говорится все дело случая. Не стоит пихать все что угодно в базу MySQL, экономьте ее. Ее использование несет преимущество при большом обьеме данных, благодаря удобству поиска, индексации записей. Например голосование на сайт я бы сделал на файловой базе, а сервис голосований на базе MySQL. Гостевую книгу на файле, а форум на мускуле. Все зависит от обьема. |