Ограничить скорость yandex-disk
yandex-disk используется на сервере (VPS) для заливки бэкапов в облако. Проблема в том что при запуске он полностью использует все 100Mb интерфейса, что естественно не устраивает. Пробовал trickle — не работает. Запускается, но скорость не режется. Что посоветуете?
Можно поставить между яндекс диском и интернетом режущий трафик прокси.
Например, с помощью 3proxy поднять socks5 на локальном порту, и порезать в нем трафик согласно ФАКу. Попробовать обернуть трафик яндекс диска в сокс5 можно с proxychains или torsocks (это в случае, если софт сам не умеет в прокси оборачиваться).
Можно попробовать вместо стандартного клиента воспользоваться rclone, трафик резать он умеет.
Вспомнил, что яндекс диск когда-то работал по WebDAV, но сейчас, возможно, не работает. Хотя потестить можно. Если по ссылке неправда, то передавать/получать файлы по вебдаву можно тем же curl-ом (резать трафик ключом –limit-rate).
Как ограничить скорость загрузки и скачивания на/с Яндекс.Диск в клиенте для Windows?
Использую официальный клиент Яндекс.Диска для Windows (в настоящий момент версия 1.4.21). Мне необходимо ограничить скорость, с которой он скачивает и закачивает файлы в свое облако. Именно уменьшить скорость.
Меня не устраивает, что клиент Яндекс.Диска полностью забивает мой интернет-канал, когда скачивает или закачивает файлы. Хотелось бы ограничить его максимальную скорость. В настройках клиента есть галка «Ограничить скорость одним соединением». Но её включение не приводит к каким-либо заметным результатам. Да и непонятно, как она должна влиять на скорость.
Есть ли какой-то способ уменьшить аппетиты клиента Яндекс.Диска по забиванию интернет-канала?
Яндекс ограничивает скорость к Я.Диску (1 мбит/с) на платном тарифе
После оплаты годового тарифа узнал, что скорость доступа к их сервису по api ограничена 1 мбит/с. То есть файл, размером в 28 мб, загружается на Яндекс Диск за 215 секунд, а 1гб за 2 часа 16 минут. Заранее об этом Яндекс предпочёл не сообщать.
У Яндекса есть свой API, и нужно отдать должное: среди всех облачных сервисов — api Яндекса самый адекватный. Но есть один нюанс, о котором Яндекс почему-то умолчал: Доступ к их сервису идёт на скорости 1 мегабит в секунду. Эта проблема даже гуглится. Оказалось, что это ограничение прилетело на компании, которые использовали Яндекс Диск, как часть своей инфраструктуры. При чём здесь я — не ясно.
У меня в тамбуре есть камера, и чтобы себя подстраховать и не надеяться лишь на стабильность самой камеры, я решил в автоматическом режиме дублировать видео с камеры куда-нибудь в безопасное место. Чтобы вы понимали, мой объём данных за год — 20гб видео (это крайне мало).
Я открыл Яндекс, увидел, что у них есть API, оплатил подписку на год и попробовал закачать файл. Файл размером в 3мб загружался около 30 секунд. Разумеется, первым делом я подумал, что проблема в моём интернете, но на трёх разных провайдерах скорость не поднималась выше 1 мбита/секунду. Третий провайдер — это сервер в Амстердаме, где скоростью отдачи 1.5 гигабита по Speedtest
Откуда бы ты не писал: из раздела о работе Яндекс Диска или из раздела по работе с RestAPI — тебя всегда будут перенаправлять на Фёдора Строганова, который знает только одну фразу:
Здравствуйте! Скорость загрузки файлов на Диск, скачивания с него или обмена данными с Диском зависит только от скорости вашего соединения и настроек оборудования, дополнительные ограничения мы не устанавливаем.Однако мы не можем гарантировать стабильную работу сторонних приложений, так как не участвуем в их разработке и настройке. Вы можете использовать любое официальное решение Яндекса.У нас есть программа Яндекс Диск для Windows, macOS и Linux, приложения для Android и iOS и, конечно, сайт Диска.
Обратите внимание на часть «дополнительные ограничения мы не устанавливаем». Да-да, конечно.
В начале я делаю get запрос на получение ссылки
Затем на ссылку, которую получил в ответе, отправляю сам файл PUT запросом
Вот ссылка на весь запрос Pastebin.Request.
А вот такой ответ я получаю Pastebin.Response
Могу подтвердить, что скорость по API сильно режется. Пробовал использовать совместно с утилитой rclone. Невозможно пользоваться ни для чего. Зачем я купил 2 терабайта? Чтобы вот так страдать?
Я бы на вашем месте попробовал Yandex Object Storage: https://cloud.yandex.ru/services/storage
Оно совместимо с Amazon S3 API. Плюс есть 2 вида хранилищ: стандартное и холодное.
Думаю, должно даже дешевле выйти, чем Я.Диск.
в 48 раз дороже. Если быть более точным 48.73 раз.
Возможно, если бы я был коммерческой организацией, которая зарабатывает на этом, то было бы справедливо. А когда у меня домашнее пользование, то что-то не совсем хорошо получается
Сюда пришёл т.к. такая же проблема, плюсую статью. Тест был с VDS TimeWeb и Beget к API диска = скорость
1.5 мегабайт (при условии пропускной способности от >100 мегабайт у каждого провайдера). Тоже на платном тарифе (1ТБ — диск).
Сапорт Яндекса отвечает шаблоном, хотя был сделан акцент на использования API. Вывод — ограничение на стороне Яндекса. И точка.
Здравствуйте! Я из Яндекса. Спасибо, что рассказали, уже передал команде. Посмотрим, что можно сделать.
Здравствуйте! буду ждать вашего ответа
АХХАХАХА! ПИЗДЕЦ ТЕБЕ, ЛЮБИТЕЛЬ API-ЯНДЕКСА ЕБА[п. 2.2.1 правил общения ЦП]
Нужно сделать настройку для пользователей, как в дропбоксе где ты сам устанавливаешь ограничение на вход и выход.
Видимо недосмотрели. Скорость как была дно, так и осталась. Подписку продлевать не буду, т.к. скорость 1MBps так и осталась в 2023 г. и это за деньги.
А как давно webdav перестал быть в почёте?
Яндекс всех, кто хоть немного тянет на enterprise заставляет мигрировать на их облако
И заодно, уточните, вы брали дополнительно 1 ТБ чисто под диск или он шел в комплекте к чему-то? Почему не воспользоваться, например, https://www.netangels.ru/data-storage/?
Так они эту скорость давно начали резать, сразу же после того как диск использовали как сервера и хранилища, тогда много левых АПП отвалилось
Гораздо интереснее арендовать виртуальный сервак, чем иметь дело с яндексом
сталкивался с этим когда бэкапил синолоджи через вебдав на их облако. признавать, что ограничения на их стороне они не стали, разбираться не хотят. множество свидетельств тому есть на профильных форумах. не один и не два года уже этой "проблеме", сомневаюсь что в вашем случае что-то изменится.
Видимо из-за сайтов и групп в телеге (бот запросы) которые качают торренты и заливают на Яндекс диск и порезали скорость, чтобы не злоупотребляли
Как раз скачанный с торента файл без проблем грузится в янекс лиск. То есть он дефакто не грузится а на ходится в другом акаунте и копируется к вам, там исходящего тарфика нет вообще и при этом файл появляется в облаке. Магия
К сожалению яндекс скуксился. Никто не может долго жить без головы.
Спасибо, как раз думал стоит ли брать их 2тб на 2 года. Понял, что не стоит того, бэкапы будут вечность грузиться
В общем, у меня тоже возникла необходимость делать бекапы, а в текущей ситуации в мире все иностранные подобные сервисы я сразу отмёл, а отечественных выбор не так велик. Короче наткнулся я на это сообщение и засомневался. Но провёл свои собственные тесты, и в итоге купил себе подписку на год. Что хочу сказать, первое, читайте внимательно ответ от техподдержки яндекса. Они вам не соврали, но читайте внимательно! Ответ шаблонный, но составлен грамотными юристами, я в этом ответе увидел следующие:
1) яндекс гарантирует что скорость работы с диском не будет ограничиваться с их стороны при использовании ОФИЦИАЛЬНОГО клиентского ПО от яндекса.
2) Яндекс НЕ гарантирует что скорость работы с диском не будет ограничиваться при использовании альтернативного ПО из других источников. И прямо намекают что они оставляют за собой право это делать. (что и сделали)
—— Собственно всё ——
По факту, после прочтения я провёл свои собственные тесты, которые подтвердили все вышесказанные подозрения, моя скорость интернета 200 мегабит. При загрузке файлов на яндекс диск и с яндекс диска, с использованием их официального ПО скорость была ограничена лишь моим каналом интернета.
При использовании альтернативного не официального клиентского ПО, скорость загрузки с яндекс диска на локальный диск была НЕ ограничена, при загрузки с локального диска на яндекс диск да, был 1 мегабит. Скрины прилагаю ниже (первые два выгрузка на яндекс диск через официальное ПО, последний загрузка с яндекс диска на локальный через альтернативное ПО NAS для внешней синхронизации).
То что загрузка на яндекс при использовании стороннего ПО ограничена, это конечно не приятно, но лично для меня не критично. В моём случае, ситуация следующая, у меня есть сетевое хранилище, на котором я храню всё важное. Было бы конечно хорошо, если бы ПО на сетевом хранилище само синхронизировалось с яндексом, но, файлов у меня много и они большие. Нет, это не видео с фотками 🙂 Это архивы с проектами, пофайлово копировать в реальном времени для меня не вариант, там файлов миллиарды, по этому я настроил задание по расписанию, которое архивирует проекты по папкам и до кучи прогоняет архивы через AES шифровалку, перед загрузкой на внешние хранилища, так на всякий случай. Потом эти архивы кладутся в папку которая расшарена по локальной сети на мой комп с виндой и установленным яндекс диском. Яндекс диск на винде сам видит изменения файлов на сетевом диске и выгружает файлы на максимальной скорости. В целом моя задача решается целиком и полностью, да без бубна с напильником не обошлось, но в итоге сервисом я доволен.
А можно как то распознать как сервер отличает официальный клиент от официального. Чтоб прикинуться официальным клиентом.
На самом деле покопав глубже, я всё понял. Проблема не в том как он отличает, а в том как работает клиент. В общем суть, яндекс апи, это "Extended WebDAV". И "расширенный" тут ключевое слово. Если у разработчика альтернативного клиента руки не оттуда, или ему лень разбираться в "Extended WebDAV", то да, резаться будет всё. Короче, как работает нормальный клиент, это может быть и альтернативный в том числе:
1) бьёт большой файл на сегменты (виртуально)
2) вычисляет от каждого сегмента его hash
3) делает запрос на апи яндекса, подсовывая список hash этих сегментов
4) получает ответ от яндекса, каких сегменты у него уже есть, а каких нет
5) грузит только те сегменты файла которых у YD нету (по их id полученные от яндекса в п.4).
——
Если не выполнять эти условия, скорость будет резаться.
Как работает "недо-клиенты", в том числе тот "curl" пример из первого поста:
1) пытается пропихнуть весь файл целиком без сегментирования и вычисления хэшей.
2) яндекс видит отсутствие хэшей и что ему пытаются пропихнуть огромный файл целиком, как итог яндекс такие клиенты режет.
И это вполне ОПРАВДАНО!
Поясню почему:
Представьте, у вас есть большой файл, скажем 20gb, который вы загрузили на диск. Вы изменили в нём пару байт (а может и просто дату создания файла) ваш клиент видит что файл изменился и шлёт весь файл на диск. Скорость вашего канала 200 мегабит. И таких как вы ещё 1000 человек по все РФ, которые поставили себе эти "недо-клиенты". Что случится с каналом связи яндекс цода? Ляжет он. Потому что 200 гигабит канал нужен будет, нет таких каналов. До кучи, вы все, все 1000 человек, загрузите на YD 20 TB данных, ПРИ ТОМ что у файлов изменилось пару байт из 20TB (со всех в сумме), или вовсе могла просто дата поменяться.
Короче, для себя лично я решил проблему просто и быстро, я создал для своего NAS docker образ с yandex disk официальным клиентом. И смонтировал в него нужный мне каталог.
Далее я создал ещё один docker образ, которому отключил сеть и дал лоступ к корневой системе в NAS, напихал всяких кронов, которые архивируют нужные мне папки и сервисы со всего NAS в тот каталог который доступен первому докер образу с яндексом. Итог, файлы выгружаются на яндекс диск на скорости 20 мегабайт в секунду (200 мегабит), это предел моего интернет канала.
Позвольте с вами не согласится. Из моего опыта это работает не совсем так. Мне каеся он не бьет на части, а вычиляет что типа хеш суммы и если такой фал уже есть на диске другого пользователя то файл не загружает, а внутри сервиса копирует этот файл в ваш акаунт. То есть продает одно и тоже дисковое пространству нескольким юзерам. Что не есть хорошо.
Как я это понял? Иногда я загружаю в диск скачанные сторентов сериалы. И это происходит так, что я кладу папку диска на компе несколько файлов (сезон сериала например) и он мне показывает что идет загрузка хотя исходящего трафика почти нет. При канале в 750 мегабит исходящий трафик не превыает нескольких килобит. А потом раз эти фалы уже оказались в диске их можно скачать с диска на другое устройство (на телефон, тв приставку и тп). Но! Если эти же файлы (даже когда они лежат в моем акаунте) слегка подредактировать в монтажной программе, а именно обрезать титры в конце, то яндекс диск их начинает реально выгружать в облако. Но так же поток трафика набирает скорость не сразу. программе нуно какоето время для анализа фалов, обычно 1 -2 минуты, только потом появляется скорость. Т.е. идет поток трафика примерно 100 мегафбит на поток то есть если в паку диска скопировать 1 файл то скорость отдачи быдет примерно 100 мегаюит 11.6МБ\сек, а вот если выгрузить сразу пачку отредактированных фалов, то скорость возрастает до примерно 400 мегабит ок 42 МБ\сек. Юольше 42 МБ разогнать не удавалось даже если туда скопировать сразу сотню фалов. То есть у родной программы диска тоже есть ограничение скорости. При этом на скачивания фалов с диска ограничений нет, что родная программа, что сторонние синхронизаторы (например FolderSynk) Легко забивают весь канал 750 — 800 мегаит.
Я тоже с вами не во всём соглашусь, да вы верно пишите, что файлы что есть у других не грузятся по факту (см. мой ответ на другое сообщение ниже), но я не соглашусь с этим:
1) >> . пространству нескольким юзерам. Что не есть хорошо. <<
А что простите в этом плохого? Зачем сохранять одни и те же данные много раз? Есть блоки данных, с байтами самой информации. Есть мета-данные, которые представляют из себя объект "файл" на диске пользователя. Мета данные можно разместить хоть у тысячи пользователей, и у всех у них будет тот же файл. Никаких рисков потери данных тут нет. При этом занимать он будет место на физических носителях всего 1 раз. К слову, это не ново, такой подход используется давно и очень много где. Например, у меня на NAS файловая система btrfs, она тоже использует такую технологию. Я могу 100500 раз скопировать какой нибудь фильм размером 20gb в кучу раных папок, или просто с разными именами. При этом размер свободного пространства на NAS не уменьшится. А если потом посчитать общий размер всех файлов в хранилище, он может превышать его физический объём. Это даже в какой то степени удобно, лично для меня.
2) >>Больше 42 МБ разогнать не удавалось<<
Это лишь подтверждает то что я писал вчера ещё. Да, не удалось, потому что вы упёрлись в CPU. Когда файл есть у других в точности какой и у вас, процесс выглядит иначе, клиент бьёт файл на сегменты, вычисляет hash, далее он получает от YD ответ что все куски есть и создаёт метаданные о файле уже на вашем диске. И скорость загрузки (в данном случае по факту никакой реальной загрузки данных нету) состоит из того, как быстро он вычислит hash у вас в локальной системе, потому что после этого он просто ставит флажок что сегмент загружен. И получается по времени:
начали обработку сегмента -> вычислили hash -> сделали запрос на YD и сразу моментально получили ответ что сегмент есть -> сегмент успешно "загружен"
Т.е. скорость = объём сегмента / время
И в виду отсутствия самой загрузки получается что скорость упирается в скорость рассчёта hash на вашем CPU.
3) на счёт того что он бьёт файлы на сегменты, это инфа тоже 100500%
как минимум для linux клиента. Во первых, у яндекс клиента очень подробные логи, можете сами посмотреть
Yandex.Disk/.sync/core.log
Там всё очень отчётливо прослеживается, как он бьёт файлы на сегменты, как он вычисляет hash от каждого кусочка, как потом он в 8 потоков эти кусочки грузит на YD и пишет отчёт по каждому отдельному сегменту.
Во вторых, это видно ещё и в htop, даже если не копаться в логах. Если резко ему подсунуть ОДИН большой файл, например 10gb, будет видно как 8 разных процессов грузят CPU. Если бы не было сегментирования, был бы один процесс который грузит одно ядро cpu, который вычислял бы hash от всего файла целиком. Но это не так. И в последствии, когда hash вычислены, у вас будет 8 процессов которые параллельно грузят сеть. Проверьте, сами увидите. Так что вопрос сегментирования это тоже инфа 100%
З.Ы. под сегментированием, может вы меня не так поняли, но физического разбиения файла на куски нету, я не зря писал "(виртуально)". Просто смотрите, скажем файл 8gb. Разбить файл на 8 кусков виртуально, это не значит сделать 8 маленьких файлов, это значит что создать 8 параллельных процессов, каждый из которых будет работать с этим одним файлом, но будет ограниченно читать из него данные, например первый процесс читает с файла данные с 0 по 1gb, второй процесс открывает этот же файл но читает данные начиная с 1gb от начала файла, и до 2gb от начала файла, и т.д. И каждый процесс со своими данными вычисляет хэш, загружает или и делает прочие операции параллельно и независимо от остальных.
Яндекс диск загружает сеть на 100%
Вчера мне нужно было загрузить один из курсов на яндекс диск и в процессе заливки курса у меня просто легла сеть, я даже не мог подключиться к своему серверу! Когда все таки получил изображение экрана я думал, что у меня накрывается или сыпется диск, но в это было сложно поверить т.к. диск у меня ✅ samsung evo 870 500gb который я ставил в конце декабря. Но когда включил диспетчер задач меня встретила вот такая картинка)
Яндекс диск в процессе отправки данных около 40 гигов с компа в облако занял всю сеть!
Это еще хорошо, что я делал это вечером, а не в разгар рабочего дня. (представляю сколько было бы шуму от недовольных сотрудников))) )
почему Яндекс диск загружает сеть на 100%?
✅ Покопавшись в настройках Яндекс диска я не нашел ни одного упоминания об ограничении скорости.
В итоге я решил спросить об этом разработчиках Яндекс и вот что мне ответили.
Понимаю, что отсутствие подобной опции доставляет вам некоторые неудобства. Я уже передал ваше пожелание о её добавлении нашим разработчикам. Коллеги изучают все предложения пользователей при планировании обновлений, обязательно учтут и вашу идею.
Будем вместе работать над тем, чтобы сделать сервисы Яндекс 360 удобнее.
—
Оцените наш ответ
Фёдор Строганов
Поддержка Яндекса
Если вы используете яндекс диск как резервное копирование больших данных или хотите что то залить большое в облако, делаете это ночью. Вот такой вот сервис к сожалению(
Но я очень надеюсь, что ребята из Яндекса в след обновлении это исправят!