Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Как ускорить работу вебсайта (https://javascript.ru/forum/server/73170-kak-uskorit-rabotu-vebsajjta.html)

lerneree 26.03.2018 20:15

Как ускорить работу вебсайта
 
Основнок время при работе вебсайта это запрос к базе данный.
Бак работает жесткий диск:
http://pc-information-guide.ru/zhest...utera-hdd.html
Кратко: на общем валу насажено несколько дисков, магнитные дорожки,
каждого находятся друг над другом и образуют так называемый цилиндр.
Есть коромысло с несколькими магнитными головками, по одной на каждый диск. Коромысло движется,
устанавливается на необходимый цилиндр и производит запись/чтение. Движется оно шустро, но конечно это
занимает значительное по компьютерным понятиям время.
Получается что когда коромыслр установлено на некоторый цилиндр оно
может очень быстро считывать или записывать инфлрмацию. А вот если при выполнении sql запроса требуется
обращение к таблицам находящимся на разных цилиндрах, то коромыслу приходится перемещаться и время выполнения
запроса резко увеличивается, иногда становится неприемлимым. Например для профиля пользователя надо по
имеющемуся ключам выбрать наименование страны, региона, города, улицы. Это потребует обращения к таблице с
профилем и еще к четырем.
Может быть катастрофа, если таблицы находятся на разных цилиндрах. Кеширование помогает но не всегда.
Твердотельные диски не имеют этой проблемы.
Здесь Вы можете ознакомиться с результатами испытаний и сравненее hdd с ssd
https://m.geektimes.ru/post/276052/
Разница в скорости десятки раз
А чтобы зло пресечь собрать бы hdd да сжечь! Но hdd память сильно дешевле, без них не обойтись. Так что
проблему надо решать, основные методы:
- оптимизировать расположение таблиц на диске. Для каждой реально работающей программы есть распределение
вероятностей запросов. Можно оптимально расположить таблицы минимизируя среднее время доступа или максимальное
время доступа. Это может сделать программист или же программа. Но я такой программы не смог найти. Кто знает
подскажите, пожалуйста.
- использовать два или больше дисков, также оптимизируя расположение таблиц. Например один из дисков может быть
ssd и на нем расположить маленькие таблицы.
- использовать оперативную память, она даже быстрее чем sdd, а уж если использовать кеш память то будет совсем
быстро. Для этого годятся журналируемые хранилища например
redis , memcached. Поскольку большинство сайтов работает на хостингах и виртуальных серверах без сисадмина, было бы
полезно сделать журналируемое хранилмще не требующее устпновки, на базе cron.
Беда в том что самая популярная субд mysql не позволяет размещать таблицы на разных дисках и тем
более не использует журналируемые хранилише. Может быть есть расширения для mysql позволяющие делать это ,
но я таких найти не сумел. Кто знает подскажите, пожалуйста.
Предлагаю основать open source проект и разработать систему для оптимизации дисковой памяти.

laimas 26.03.2018 20:36

Удачного бота кто-то написал.

lerneree 27.03.2018 14:32

отвечай по существу или уж помалкивай в тряпочку

laimas 27.03.2018 14:35

lerneree,
вы написали в нескольких постах всякой хрени по немного, слив все в кучу. Теории увлекают или просто посудачить охота?

lerneree 28.03.2018 12:31

пищите конкретно где и почему хрень .
кстати на других форумах вполне конструктивно обсуждаем

laimas 28.03.2018 12:39

lerneree,
было бы корректным размещать все что вы понаписали в разных разделах форму в одном разделе - оффтопик. Именно там место всех ваших простраций.

lerneree 29.03.2018 11:06

профессор не вижу ни одного слова по существу. а я могу с\казать что вы пишите хрень

laimas 29.03.2018 11:35

Цитата:

Сообщение от lerneree
профессор не вижу ни одного слова по существу.

Ну да, блин, а ваше все, что сводится к одному "есть ли жизнь на Марсе, нет ли жизни на Марсе..", ну прям так и тянет на полемику хлебом не корми? Понаписали в нескольких темах бреда и ждете чего-то.


Часовой пояс GMT +3, время: 04:46.