Какие из этих величин больше 1 мегабайта: Что больше 1Кб или 1Мб? Сколько Мб в 1 Гб, единицы измерения информации

Задание ресурсов памяти для контейнеров и Pod’ов

На этой странице рассказывается, как настраивать запрос памяти и её лимит для контейнеров. Контейнеру гарантируется столько памяти, сколько он запросит, но не больше установленных ограничений.

Подготовка к работе

Вам нужен Kubernetes кластер и инструмент командной строки kubectl должен быть настроен на связь с вашим кластером. Если у вас ещё нет кластера, вы можете создать, его используя Minikube, или вы можете использовать одну из песочниц Kubernetes:

  • Killercoda
  • Play with Kubernetes

Чтобы проверить версию, введите kubectl version.

Каждая нода вашего кластера должна располагать хотя бы 300 Мб памяти.

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

Если вы используете Minikube, выполните следующую команду, чтобы запустить сервер метрик:

minikube addons enable metrics-server

Чтобы проверить работу сервера меток или другого провайдера API ресурсов метрик (metrics. k8s.io), запустите команду:

kubectl get apiservices

Если API ресурсов метрики доступно, в выводе команды будет содержаться ссылка на metrics.k8s.io.

NAME      
v1beta1.metrics.k8s.io

Создание пространства имён

Создадим пространство имён, чтобы ресурсы, которыми будем пользоваться в данном упражнении, были изолированы от остального кластера:

kubectl create namespace mem-example

Установка запроса памяти и лимита памяти

Для установки запроса памяти контейнеру подключите поле resources:requests в манифест ресурсов контейнера. Для ограничений по памяти — добавьте resources:limits.

В этом упражнении создаётся Pod, содержащий один контейнер. Зададим контейнеру запрос памяти в 100 Мб и её ограничение в 200 Мб. Конфигурационный файл для Pod’а:

pods/resource/memory-request-limit.yaml

apiVersion: v1
kind: Pod
metadata:
  name: memory-demo
  namespace: mem-example
spec:
  containers:
  - name: memory-demo-ctr
    image: polinux/stress
    resources:
      limits:
        memory: "200Mi"
      requests:
        memory: "100Mi"
    command: ["stress"]
    args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]

Раздел args конфигурационного файла содержит аргументы для контейнера в момент старта. Аргументы "--vm-bytes", "150M" указывают контейнеру попытаться занять 150 Мб памяти.

Создадим Pod:

kubectl apply -f https://k8s.io/examples/pods/resource/memory-request-limit.yaml --namespace=mem-example

Убедимся, что контейнер Pod’a запущен:

kubectl get pod memory-demo --namespace=mem-example

Посмотрим подробную информацию о Pod’е:

kubectl get pod memory-demo --output=yaml --namespace=mem-example

В выводе мы видим, что для контейнера в Pod’е зарезервировано 100 Мб памяти и выставлено 200 Мб ограничения.

...
resources:
  limits:
    memory: 200Mi
  requests:
    memory: 100Mi
...

Запустим kubectl top, чтобы получить метрики Pod’a:

kubectl top pod memory-demo --namespace=mem-example

Вывод команды показывает, что Pod использовал примерно 162900000 байт памяти — и это около 150 Мб. Данная величина больше установленного запроса в 100 Мб, но укладывается в имеющееся ограничение на 200 Мб.

NAME                        CPU(cores)   MEMORY(bytes)
memory-demo                 <something>  162856960

Удалим Pod:

kubectl delete pod memory-demo --namespace=mem-example

Превышение контейнером лимита памяти

Контейнер может превысить величину запроса памяти, если нода имеет достаточно ресурсов памяти. Но превышение заданного ограничения памяти не допускается. Если контейнер запрашивает больше памяти, чем ему разрешено использовать, то он становится кандидатом на удаление. Если превышение лимита памяти продолжится, контейнер удаляется. Если удалённый контейнер может быть перезапущен, то kubelet перезапускает его, как и в случае любой другой неполадки в работе.

В этом упражнении создадим Pod, который попытается занять больше памяти, чем для него ограничено. Ниже представлен конфигурационный файл для Pod’a с одним контейнером, имеющим 50 Мб на запрос памяти и 100 Мб лимита памяти:

pods/resource/memory-request-limit-2. yaml

apiVersion: v1
kind: Pod
metadata:
  name: memory-demo-2
  namespace: mem-example
spec:
  containers:
  - name: memory-demo-2-ctr
    image: polinux/stress
    resources:
      requests:
        memory: "50Mi"
      limits:
        memory: "100Mi"
    command: ["stress"]
    args: ["--vm", "1", "--vm-bytes", "250M", "--vm-hang", "1"]

В разделе args можно увидеть, что контейнер будет пытаться занять 250 Мб — и это значительно превышает лимит в 100 Мб.

Создадим Pod:

kubectl apply -f https://k8s.io/examples/pods/resource/memory-request-limit-2.yaml --namespace=mem-example

Посмотрим подробную информацию о Pod’е:

kubectl get pod memory-demo-2 --namespace=mem-example

В этот момент контейнер уже либо запущен, либо убит. Будем повторять предыдущую команду, пока контейнер не окажется убитым:

NAME            READY     STATUS      RESTARTS   AGE
memory-demo-2   0/1       OOMKilled   1          24s

Посмотрим ещё более подробный вид статуса контейнера:

kubectl get pod memory-demo-2 --output=yaml --namespace=mem-example

В выводе показано, что контейнер был убит по причине недостатка памяти (OOM):

lastState:
   terminated:
     containerID: docker://65183c1877aaec2e8427bc95609cc52677a454b56fcb24340dbd22917c23b10f
     exitCode: 137
     finishedAt: 2017-06-20T20:52:19Z
     reason: OOMKilled
     startedAt: null

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

kubectl get pod memory-demo-2 --namespace=mem-example

Вывод показывает, что контейнер убит, перезапущен, снова убит, перезапущен, и т.д.:

kubectl get pod memory-demo-2 --namespace=mem-example
NAME            READY     STATUS      RESTARTS   AGE
memory-demo-2   0/1       OOMKilled   1          37s
kubectl get pod memory-demo-2 --namespace=mem-example
NAME            READY     STATUS    RESTARTS   AGE
memory-demo-2   1/1       Running   2          40s

Посмотрим подробную информацию об истории Pod’a:

kubectl describe pod memory-demo-2 --namespace=mem-example

Вывод показывает, что контейнер постоянно запускается и падает:

... Normal  Created   Created container with id 66a3a20aa7980e61be4922780bf9d24d1a1d8b7395c09861225b0eba1b1f8511
... Warning BackOff   Back-off restarting failed container

Посмотрим детальную информацию о нодах на кластере:

kubectl describe nodes

В выводе содержится запись о том, что контейнер убивается по причине нехватки памяти:

Warning OOMKilling Memory cgroup out of memory: Kill process 4481 (stress) score 1994 or sacrifice child

Удалим Pod:

kubectl delete pod memory-demo-2 --namespace=mem-example

Установка слишком большого для нод запроса памяти

Запросы и ограничения памяти связаны с контейнерами, но полезно также рассматривать эти параметры и для Pod’а.

Запросом памяти для Pod’a будет сумма всех запросов памяти контейнеров, имеющихся в Pod’е. Также и лимитом памяти будет сумма всех ограничений, установленных для контейнеров.

Планирование Pod’a основано на запросах. Pod запускается на ноде лишь в случае, если нода может удовлетворить запрос памяти Pod’a.

В данном упражнении мы создадим Pod, чей запрос памяти будет превышать ёмкость любой ноды в кластере. Ниже представлен конфигурационный файл для Pod’a с одним контейнером, имеющим запрос памяти в 1000 Гб (что наверняка превышает ёмкость любой имеющейся ноды):

pods/resource/memory-request-limit-3.yaml

apiVersion: v1
kind: Pod
metadata:
  name: memory-demo-3
  namespace: mem-example
spec:
  containers:
  - name: memory-demo-3-ctr
    image: polinux/stress
    resources:
      limits:
        memory: "1000Gi"
      requests:
        memory: "1000Gi"
    command: ["stress"]
    args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]

Создадим Pod:

kubectl apply -f https://k8s. io/examples/pods/resource/memory-request-limit-3.yaml --namespace=mem-example

Проверим статус Pod’a:

kubectl get pod memory-demo-3 --namespace=mem-example

Вывод показывает, что Pod имеет статус PENDING. Это значит, что он не запланирован ни на одной ноде, и такой статус будет сохраняться всё время:

kubectl get pod memory-demo-3 --namespace=mem-example
NAME            READY     STATUS    RESTARTS   AGE
memory-demo-3   0/1       Pending   0          25s

Посмотрим подробную информацию о Pod’е, включающую события:

kubectl describe pod memory-demo-3 --namespace=mem-example

Вывод показывает невозможность запуска контейнера из-за нехватки памяти на нодах:

Events:
  ...  Reason            Message
       ------            -------
  ...  FailedScheduling  No nodes are available that match all of the following predicates:: Insufficient memory (3).

Удалим Pod:

kubectl delete pod memory-demo-3 --namespace=mem-example

Единицы измерения памяти

Ресурсы памяти измеряются в байтах. Их можно задавать просто целым числом либо целым числом с одним из следующих окончаний: E, P, T, G, M, K, Ei, Pi, Ti, Gi, Mi, Ki. Например, представленные здесь варианты задают приблизительно одну и ту же величину:

128974848, 129e6, 129M , 123Mi

Если лимит памяти не задан

Если вы не задали ограничение памяти для контейнера, возможны следующие варианты:

  • У контейнера отсутствует верхняя граница для памяти, которую он может использовать. Такой контейнер может занять всю память, доступную на ноде, где он запущен, что, в свою очередь, может вызвать OOM Killer. Также контейнеры без ограничений по ресурсам имеют более высокие шансы быть убитыми в случае вызова OOM Kill.

  • Контейнер запущен в пространстве имён, в котором настроена величина ограничений по умолчанию. Тогда контейнеру автоматически присваивается это стандартное значение лимита. Администраторы кластера могут использовать LimitRange для задания стандартной величины ограничений по памяти.

Мотивация для использования запросов и ограничений памяти

При помощи задания величины запросов и лимитов памяти для контейнеров, запущенных на вашем кластере, можно эффективно распоряжаться имеющимися на нодах ресурсами. Задание Pod’у небольшого запроса памяти даёт хорошие шансы для него быть запланированным. Ограничение памяти, превышающее величину запроса памяти, позволяет достичь 2 вещей:

  • Pod может иметь всплески активности, в течение которых ему может потребоваться дополнительная память.

  • Величина памяти, доступная Pod’у при повышении активности, ограничена некоторой разумной величиной.

Очистка

Удалим пространство имён. Эта операция удалит все Pod’ы, созданные в рамках данного упражнения:

kubectl delete namespace mem-example

Что дальше

Для разработчиков приложений

  • Assign CPU Resources to Containers and Pods

  • Configure Quality of Service for Pods

Для администраторов кластера

  • Configure Default Memory Requests and Limits for a Namespace

  • Configure Default CPU Requests and Limits for a Namespace

  • Configure Minimum and Maximum Memory Constraints for a Namespace

  • Configure Minimum and Maximum CPU Constraints for a Namespace

  • Configure Memory and CPU Quotas for a Namespace

  • Configure a Pod Quota for a Namespace

  • Configure Quotas for API Objects

Изменено June 25, 2020 at 9:41 PM PST: RU assing cpu & memory resource (5372373384)

Битники

Нынешний расцвет мобильных гаджетов, компьютеров и Всемирной паутины называют цифровым веком. Это связано с бумом цифровой информации: всё, что мы читаем и пишем, видим и слышим, переводится в форму, понятную компьютеру. Компьютер, в свою очередь, открывает нам целую вселенную возможностей по работе с такой информацией – копировать, передавать, хранить любые дынные становится все проще. МТС/Медиа поможет разобраться в теории создания цифрового мира.

Двоичная и десятичная системы счисления

Прежде чем понять, как картинка, полученная объективом смартфона, или книга или становятся файлом на компьютере, нужно хотя бы в первом приближении понимать, как работает этот самый компьютер.

На самом базовом уровне компьютер, несмотря на приписываемый молвой интеллект, оперирует прямо-таки примитивными категориями: да – нет, делать – не делать. В дебрях микросхем этот дуализм выражается в наличии или отсутствии электросигнала. Всё, что должен переварить компьютер, ему предварительно нужно «разжевать», разбить на простые элементы, свести к набору из двух противоположных понятий.

«Нет» в компьютерном языке заменяет цифра 0, «да» – 1. Именно поэтому компьютерная информация и называется цифровой. Всё, что хранит ваш компьютер или смартфон, все сложные алгоритмы, зашитые в самых сложных программах – и кадр-шедевр с последней вечеринки, и любимая песня, и недописанное начальнику письмо с заголовком «да пошел…» – все это лишь длинная череда нулей и единиц.

Базовым числом в нашей повседневной жизни является 10 – мы используем цифры от 0 до 9, то есть, привычной для нас является десятичная система счисления. В мире компьютера базовое число – 2 (всего две цифры, 0 и 1), а системе счисления называется двоичной или бинарной. В десятичной системе для перехода от однозначных чисел к двузначным нужно сначала досчитать до девяти, для перехода к трёхзначным – до 99. Принцип формирования разрядов в системах один и тот же: новый разряд в числе появляется после того, как только в текущем исчерпаны все доступные цифры

Теперь мы уже понимаем, как в цифровую форму, понятную компьютеру, можно перевести любое число. Кроме того, мы видим, каков он, минимальный кусок информации – это 1 или 0. Этот минимальный кусок называется битом. Для того, чтобы записать число 2 в двоичной системе нужно 2 бита информации (10), для записи числа 4 – 3 бита (100), для 15 – 4 бита (1111).

Буквы – в цифры

На деле, чаще мы сталкиваемся не с битами информации, а с байтами. Байт равен 8 битам. Если вы видите, что речь идёт об объеме информации, скажем, в 10 МБ, то буква «Б» – это именно байт, а не бит. В тех случаях, когда указываются биты, слово «бит» пишут целиком.

Байт – аналог слова в машинном языке. На заре компьютерной эры 8 бит информации соответствовали одной ячейке памяти машин, все 8 бит передавались вместе как одно целое. Потом машинные «слова» стали удлиняться, но оставались кратными восьми по количеству бит.

Почему именно 8? Так сложилось. 8 бит были необходимы, чтобы представить 1 текстовый символ в одной из первых компьютерных кодировок. Кодировка – это таблица соответствия текстовых символов значениям двоичных чисел. Если попытаться написать все варианты восьмизначных чисел, состоящих из нулей и единиц, от 00000000 до 11111111, то таких вариантов наберётся 256 – именно столько символов есть во многих ныне существующих кодировках, и все они называются 8-битными.

Таблица кодировки – своего рода инструкция для компьютера, с помощью которой он переводит буквы текста в двоичные числа и наоборот. Однако все символы всех языков в одной кодировке не поместятся, и для каждого языка нужны свои инструкции. По этой причине в мире получили распространение национальные кодировки. Так, в кириллических кодировках (КОИ-8, Windows-1251, MacCyrillic) есть большие и маленькие буквы русского и латинского алфавитов, цифры, знаки препинания и вспомогательные символы. Если на компьютере где-нибудь в Китае не установлена поддержка кириллической кодировки, то вы не сможете набрать русские символы, а операционная система не сумеет их отобразить.

Позднее наряду с 8-битными кодировками получили распространения 16-битные, в которые вмещаются чуть ли не все мыслимые символы всех языков. Однако каждая буква в такой кодировке занимает уже два байта.

Итак, 1 буква – это 1 или 2 байта. Теперь мы знаем, что если в «Войне и мире» Льва Толстого около 3 млн букв, то на компьютере сравнимый объём информации займёт около 3 или 6 млн байт.

Отступление о степенях двойки

Байт – очень небольшой объём информации. Поэтому в цифровом мире в ходу обычные для обозначения больших величин приставки кило (к), мега (М), гига (Г) и другие. Вот только из-за двоичности компьютерного мира значения этих приставок иные. Килобайт – это не 1000, а 1024 байта, мегабайт – 1024 килобайта. Это связано с тем, что при обработке цифровой информации, которая вся состоит из двоичных чисел, удобнее использовать степени числа 2. 1024 – это 2 в 10 степени. Мегабайт – это чуть больше 1 миллиона байтов, 1048576.

Как только компьютеры стали бытовыми устройствами, неординарность расчёта объёма информации стала приводить к недопонимаю со стороны пользователей, живущих в мире традиционных «десятичных» ценностей. Как следствие, вот уже несколько лет производители карт памяти и жёстких дисков пишут на своей продукции объём, имея в виду обычные значения приставок кило и мега (т.е. кратных 1000). А вот операционные системы семейства Windows, к примеру, продолжают, использовать производные от степеней двойки. Купив жёсткий диск на 2 ТБ и установив его в Windows-компьютер, пользователь увидит лишь 1,8 ТБ – никакого тебе закона сохранения. И немалая разница в 10%.

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

Импрессионизм, доведенный до автоматизма

До сих пор мы говорили о переводе в цифровой вид абстрактных сущностей – чисел и символов. С изображениями, а также звуком есть важный нюанс. Как бы тщательно мы не старались свести к перечню отдельных числовых значений всё разнообразие красок и звуков, всё равно цифровой вариант будет грубым упрощением. Хорошая новость в том, что при достаточно детальном переводе аналогового цвета или звука в «цифру» мы перестаём улавливать на глаз и слух разницу между реальностью и компьютерной её копией.

Начнём с того, что мы видим. Первое огрубление цифрового изображения в том, что видимую картинку нужно свести к прямоугольнику с определённом количеством точек по длине и ширине, чего нет в мире, воспринимаемом глазом. В матрице цифрового фотоаппарата и матрице компьютерного монитора ограниченное количество точек. Поднесите к монитору лупу, и эти точки станут видимыми. От количества точек в компьютерном изображении зависит, насколько мелкие детали удастся разглядеть на изображении – чем больше, тем чётче. Чем-то это напоминает художественные произведения импрессионистов, разумеется, не подозревавших о компьютерах, но стремившихся с помощью мелких мазков и точек передать все богатство цвета и света реального мира.

Поначалу компьютеры работали с монохромными изображениями, и для каждой их точки нужно было указать, чёрная она или белая. Соответственно, для каждой точки хватало 1 бита информации, а такой набор цветов (цветовую глубину) называют однобитным. Для 2-битовой глубины цвета получаем 4 возможных оттенка (00, 01, 10, 11), для 4-битовой – 16, для 8-битовой – 256. В большинстве случаев, на чёрно-белом изображении с 256 оттенками серого глаз видит все цветовые переходы плавными. Объём такого изображения на компьютере равен произведению количества точек в нём на 8 бит или на 1 байт. Вот пример. Одно из стандартных разрешений мониторов – 1024 на 768 точек или всего 786 432 точек. Чёрно-белое 8-битное изображение в таком разрешении займёт 786 432 Б или почти 0,8 МБ.

Цветное изображение компьютерных мониторов формируется смешением трёх базовых цветов – красного, зелёного и синего. Такой формат формирования цвета обозначают аббревиатурой RGB – производной от английских слов red, green и blue. При 256 оттенках на каждый цвет получим, во-первых, всего 256 х 256 х 256 = 16,7 млн разных цветов, а, во-вторых, 24 бита или 3 байта информации на одну точку изображения. В приведённом выше примере 24-битное цветное изображение замет уже почти 2,5 МБ. 24-битный цвет – стандарт для современных компьютеров и смартфонов. К слову говоря, человеческий глаз может улавливать около 10 млн оттенков, а потому 16,7 млн и 24-битная цветовая глубина – это с запасом.

На деле, компьютерные изображения почти всегда занимают намного меньше места, чем стоило бы ожидать из приведённых только что математических выкладок. За счёт различных алгоритмов подчас удаётся уменьшить объём графических файлов в несколько раз. Для этого, в основном, используют две хитрости.

Первое. Если все точки части изображения одного и того же цвета, нет смысла описывать цвет каждой точки по отдельности: его указывают один раз для группы точек. Вторая хитрость опирается на особенности человеческого зрения. Иногда за счёт небольшого и незаметного на глаз искажения цветов компьютерного изображения можно увеличить количество точек одинакового цвета в нём, а потом воспользоваться хитростью номер один. Если нам нужно сильнее уменьшить объём графического файла, мы вносим в него больше искажений, хотя с каждыми таким шагом повышается риск сделать качество изображения неприемлемым. Примерно так создаются графические файлы в популярном формате Jpeg. Две версии одной и той же фотографии ниже сделаны именно в этом формате, один файл в 8 раз больше другого, но и разница в качестве налицо.

В целом, «легкие» цифровые фотографии имеют меньшее число точек (разрешение) и более низкое качество, выражающееся в видимых искажениях и размытии изображения.

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

Звуки в цифрах

Живой звук состоит из непрерывной череды звуковых колебаний, и идеальная его оцифровка – разбивка исходного звука на бесконечное число мгновений, в каждое из которых замеряется амплитуда звуковой волны. Идеал, конечно, невозможен, и мы снова вынуждены огрублять. Для приемлемого качества цифрового звука за секунду делается десятки тысяч замеров амплитуды звуковой волны, а соответствующее качество цифрового звука называют частотой дискретизации, измеряемой в герцах. Скажем, частота дискретизации звукового файла в 96 кГц означает, что измерения амплитуды для данного файла производилась с частотой почти 100 000 раз в секунду. Каждый такой замер – аналог точки цифрового изображения.

Точность измерений амплитуды тоже влияет на качество цифрового звука. Чем больше предусмотрено различных уровней амплитуды (по аналогии с числом оттенков цвета), тем меньше будет искажение оригинального звука. Приемлемую точность подбирали опытным путём, ориентируясь на возможность человека уловить несовершенство цифрового звука на слух. В итоге, оказалось, что если каждое измерение амплитуды звука записывать 16-ю битами информации (более 65 тысяч различных вариантов), то на слух искажения будут почти незаметными. Говорят, что у такого цифрового звука разрядность составляет 16 бит. Для сверхточного описания живого звука иногда проводят более точную оцифровку с разрядностью 24 или даже 32 бита.

Для обычного формата аудио-CD была выбрана разрядность 16 бит при частоте дискретизации 44,1 кГц. Наученные предыдущими разделами этого обзора, мы легко подсчитаем, какой объем занимает секунда такого звука: 44,1 тысячи измерений/с х 16 бит = 705600 бит = 88,2 КБ. Трёхминутная музыкальная композиция в таком качестве заняла бы на диске около 16 МБ.

Как и в случае с изображениями, наши подсчёты не соответствуют опыту: как правило, одна композиция занимает в 2-5 раз меньше места на ваших дисках. Дело в том, что и для цифрового звука придуманы алгоритмы сжатия. Без потери качества звук можно сжать не более чем на четверть. Сжатие с потерями качества опирается на несовершенство наших органов восприятия: как и в случае с изображениями, сжатия добиваются путём внесения небольших искажений. Если с этим не усердствовать и оставлять искажения неразличимыми на слух, то исходный звуковой файл можно сжать чуть ли не в 10 раз.

****

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

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

Цифровая информация обладает рядом преимуществ, которые с лихвой компенсируют некоторое её несоответствие действительности: «цифру» можно копировать, передавать на расстояния, легко модифицировать. Благодаря цифровой информации появились интернет, YouTube, смартфоны и селфи-палки. И сколько всего ещё появится в будущем!

Теги:

  • Обзор
  • Образование
  • Наука

Расскажите друзьям об этом материале:

404: Страница не найдена

Страница, которую вы пытались открыть по этому адресу, похоже, не существует. Обычно это результат плохой или устаревшей ссылки. Мы приносим свои извинения за доставленные неудобства.

Что я могу сделать сейчас?

Если вы впервые посещаете TechTarget, добро пожаловать! Извините за обстоятельства, при которых мы встречаемся. Вот куда вы можете пойти отсюда:

Поиск
  • Узнайте последние новости.
  • Наша домашняя страница содержит самую свежую информацию о технологиях хранения данных.
  • Наша страница «О нас» содержит дополнительную информацию о сайте, на котором вы находитесь, SearchStorage.
  • Если вам нужно, свяжитесь с нами, мы будем рады услышать от вас.

Просмотр по категории

SearchDisasterRecovery

  • Создайте план обеспечения непрерывности бизнеса при наводнениях, чтобы оставаться на плаву

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

  • Почему план аварийного восстановления HIPAA имеет решающее значение

    Аварийное восстановление — сложная операция с высокими ставками. Когда в дело вступают медицинские данные, хороший план аварийного восстановления становится еще более важным…

  • Используйте ISO 22320:2018 для подготовки плана управления инцидентами

    Управление инцидентами имеет решающее значение для обеспечения того, чтобы предприятия могли справляться с незапланированными разрушительными событиями. Узнайте, как ISO:22320:…

SearchDataBackup

  • 5 проблем резервного копирования неструктурированных данных и способы их решения

    Резервное копирование неструктурированных данных требует управления и защиты огромных объемов данных, сохраняя при этом их доступность и безопасность. Есть…

  • Защита данных Kubernetes сильно зависит от автоматизации и интеграции

    Kasten, CloudCasa, Portworx и Trilio выпустили обновления для своих платформ защиты и управления данными Kubernetes. Бэкап это…

  • Основатель Cohesity и новый генеральный директор обсуждают стратегию управления данными

    Нынешний и бывший руководители Cohesity стремятся вывести компанию на «новый уровень». В планы входит объединение резервного копирования и безопасности как …

SearchDataCenter

  • Лучшие практики оптимизации сети центра обработки данных

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

  • Советы по созданию стратегии управления воздушным потоком в центре обработки данных

    Воздушный поток в центрах обработки данных имеет решающее значение для исправности оборудования. Несмотря на то, что горячий/холодный проход популярен, рассмотрите другие варианты, такие как …

  • Как использовать отчеты файлового сервера в FSRM

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

unix — команда ls: как отобразить размер файла в мегабайтах?

спросил

Изменено 3 года, 11 месяцев назад

Просмотрено 618 тысяч раз

Как в Unix (Tru64) заставить команду ls показывать размер файла в мегабайтах? В настоящее время я могу показать это в байтах, используя следующее:

 ls -la
 
  • командная строка
  • unix
  • ls
  • мега

0

Возможно, вам достаточно -h :

-h
При использовании с параметром -l используйте суффиксы единиц измерения: байт, килобайт, мегабайт, гигабайт, терабайт и петабайт, чтобы уменьшить количество цифр до трех или менее, используя основание 2 для размеров.

 лс-лах
 

Общий совет: Используйте man имя_команды , чтобы прочитать руководство/помощь по определенной команде, например. здесь человек ls .

9

ls --block-size=M печатает размеры в мегабайтах, но также показывает 1 МБ для всего, что меньше 1 МБ. Однако я не уверен, что этот параметр приемлем в вашей версии ls для UNIX.

На самом деле ls -lh также печатает размеры в гигабайтах, если файл достаточно большой (Ну, в любом случае: на Linux 64bit это работает :>)

На стороннем узле: du -sh * также печатает каталог размеры в текущем каталоге.

1

Вам придется использовать awk , чтобы сделать за вас математику:

 ls -l | awk 'НАЧАЛО {мега=1048576} $5 >= мега {$5 = $5/мега "МБ"} {print}'
 

Это не повлияет на вывод файлов размером менее мега .

Возможно, вам придется изменить номер поля, чтобы он соответствовал формату вашего ls . Вы можете изменить mega на «1000000», если хотите.

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

3

попробуйте ls -shR для рекурсивного удобочитаемого формата.

2

try ls -lash , печатает размеры в удобочитаемом формате

1

du -sm имя файла.txt

1

Вы также можете ввести

 ду -ш ./*
 

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *