anonymous@RULINUX.NET~# Last login: 2024-12-24 21:49:59
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

Dr.Uid, Вот тебе программа для аллоцирования памяти

Просто подставь там в дефайне ALLOCATE столько мегабайт, сколько у тебя нету физической памяти и убедись, что при наличии свопа всё работает (задержки вставлены чтобы можно было неспеша контролировать состояние процесса в разные моменда экзекуции):

c

#include <stdlib.h>
#include <stdio.h>

#define Sleep_Delay 14
#define MB 1024*1024
#define ALLOCATE 1500

int main (int argc, char **argv){
  const unsigned MemToAlloc = ALLOCATE*MB;
  printf("(1) Started\n");
  sleep(Sleep_Delay);
  char    *cp = calloc (1,MemToAlloc);
  if(cp==NULL){
    printf("Allocation failed. Exiting\n");
    exit(1);
  }
  printf("(2) Allocated %d Bytes\n",MemToAlloc);
  sleep(Sleep_Delay);
  free(cp);
  printf("(3) Data buffer is freed\n");
  sleep(Sleep_Delay);
  return 0;
};
 

anonymous(*) (2016-02-12 22:02:36)

[Ответить на это сообщение]
avatar
Скрыть

Re:Dr.Uid, Вот тебе программа для аллоцирования памяти

Я тебе же ещё вчера сказал, 31Га своп можно забить:
a) если нет ума этого избезать
б) если есть желание это сделать

В реальном мире на десктоп своп в 31Га _НЕ_ нужен

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

Dr.uid(*)(2016-02-12 22:10:26)
Отредактировано Dr.uid по причине "не указана"
Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0
avatar
Скрыть

Re:Dr.Uid, Вот тебе программа для аллоцирования памяти

> На серверах в энтерпрайзе это вообще критическая ситуация, если оно начинает своповатся

Это вполне нормальная ситуация. Если у тебя сидят демоны, которые что-то там по хозяйству делают раз в сто лет - ну и пусть себе высвапливаются. Если у тебя сидят демоны, которые принимают огромные пачки данных, а потом их куда-нибудь потихоньку запихивают, в принтер например - ну и пусть они высвапливаются. Чем больше высвопится - тем больше места под кеш ФС останется, что в свою очередь положительно скажется на общей производительности системы.

Я тебе по секрету скажу, что "своповатся" подразумевает два процесса - page in и page out ("si" и "so" по vmstat-овски). И page out вообще никого не волнует - давно не пользованные страницы скидываются в своп, туда им и дорога. Тем более, что они сразу не отбрасывают копыта, просто перемещаются в список страниц, которые могут быть переиспользованы под нужды системы ЕМНИП. Или отмечаются как высвопленные.

Хуже когда у тебя постоянно высокие page-in'ы - в общем случае это значит системе не хватает памяти и ей приходится скидывать в своп достаточно часто используемые страницы.

> админ ленив, либо программисты дебилы

Почему "или"? Неленивый админ - это вообще нонсенс, а если бы программисты не были дебилами - они бы уже давно бросили заниматься программированием и заставили бы компьютеры делать работу за них :)

> В реальном мире на десктоп своп в 31Га _НЕ_ нужен

Ну не знаю. Я лично тешу себя надеждой, что у меня останется возможность прибить какой-нибудь процесс пока он будет занимать всё доступное для свопа пространство, даже несмотря на жуддкие тормоза при этом.

Кроме того, а сколько вообще свопа нужно? Не так уж и много надо _современных_ программ на десктопе чтобы выжрать памяти больше имеющегося ОЗУ. И вот куда ты прикажешь хибернировать десктоп после этого?

anonymous(*)(2016-02-12 22:52:19)

Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0
avatar
Скрыть

Re:Dr.Uid, Вот тебе программа для аллоцирования памяти

> На серверах в энтерпрайзе это вообще критическая ситуация, если оно начинает своповатся, зачит в 99% либо админ ленив, либо программисты дебилы.
Любо ты дурак :) Например, тебе нужно отсортировать массив больше объема оперативы. Если позволит размер свопа, то ты почти легко обойдешься стандартными методами, без переписывания алокаторов и/или использования алгоритмов работающих с диском.

fancy(*)(2016-02-13 00:22:37)

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:43.0) Gecko/20100101 Firefox/43.0
avatar
Скрыть

Re:Dr.Uid, Вот тебе программа для аллоцирования памяти

Ой какую хрень ты понаписал с видом знатока. Массив больше оперативы, но меньше оперативы+свопа, ага. И программа на это расчитывает.

А вообще man 2 mmap. Это касательно того, как файл с таким массивом отобразить в память. Своп работает по тому же принципу.

Vasily(*)(2016-02-14 13:23:11)

Mozilla/5.0 (Android 5.0; Mobile; rv:44.0) Gecko/44.0 Firefox/44.0
avatar
Скрыть

Re:Dr.Uid, Вот тебе программа для аллоцирования памяти

А вообще хорошо бы иметь свопа сколько и оперативки, но оперативку я менял уже не раз, а система живет с тех времён, когда её было 4 гига, а переразбивать диск из-за свопа не хочу. И вообще своп всегда пуст у меня, даже эти 4 гига. Гибернейт не нужен.

Vasily(*)(2016-02-14 13:31:33)

Mozilla/5.0 (Android 5.0; Mobile; rv:44.0) Gecko/44.0 Firefox/44.0
avatar
Скрыть

Re:Dr.Uid, Вот тебе программа для аллоцирования памяти

Как работает гибернейт, если занята вся память и весь своп?

lockywolf(*)(2016-02-21 21:13:03)

avatar
Скрыть

Re:Dr.Uid, Вот тебе программа для аллоцирования памяти

Тут можно согласиться с Василием в части нужности хибернейта. Имхо заново загрузиться будет быстрее чем дожидаться пока оно всосётся из свопа.

Кстати, сегодня комп наведывался в своп пока бэкапился хомяк.. Надо как-то ограничить прожорливость бэкапа несколькими гигами, а то местами было неудобно.

anonymous(*)(2016-02-21 23:08:21)
Отредактировано anonymous по причине "не указана"
Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0
avatar
Скрыть

Re:Dr.Uid, Вот тебе программа для аллоцирования памяти

> А вообще man 2 mmap. Это касательно того, как файл с таким массивом отобразить в память. Своп работает по тому же принципу.
Спасибо, мой капитан ;()

fancy(*)(2016-02-22 21:51:22)

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:43.0) Gecko/20100101 Firefox/43.0
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!