Как установить значение подкачки в Linux
Прежде чем изменить значение своппинга, вам необходимо знать его текущее значение. Если вы хотите немного уменьшить его, вопрос немного меньше, чем что? Вы можете узнать с помощью этой команды:
cat / proc / sys / vm / swappiness
Чтобы настроить значение подкачки, используйте команду :
sudo sysctl vm.swappiness = 45
Новое значение используется сразу, перезагрузка не требуется.
Фактически, если вы перезагрузите компьютер, значение подкачки вернется к значению по умолчанию, равному 60. Когда вы закончите экспериментировать и определились с новым значением, которое хотите использовать, вы можете сделать его постоянным при перезагрузках, добавив его в Файл . Вы можете использовать любой редактор, который вы предпочитаете. Используйте следующую команду для редактирования файла с помощью редактора :
sudo nano /etc/sysctl.conf
Когда откроется , прокрутите до конца файла и добавьте эту строку. Мы используем 35 в качестве значения постоянного обмена. Вы должны заменить значение, которое вы хотите использовать.
vm.swappiness = 35
Чтобы сохранить изменения и выйти из , нажмите «Ctrl + O», нажмите «Enter» и нажмите «Ctrl + Z».
Кейс 3. Создание и проведение реализаций
Третья проблема, которую мы решали у себя подобным подходом – это проблема непосредственно в нашей офисной базе УТ.
Пока мы работали на складе, делали жизнь складских работников прекрасной и удивительной, в нашей офисной УТ тоже возникли проблемы, и наши 1С-специалисты в офисе, которые отвечают за УТ, попросили нас разобраться, что же происходит у них.
Мы увидели, что в офисе тоже почему-то возникает своя суточная сезонность – определенное временное окно в начале смены (порядка двух-трех часов), когда продажники регистрируют основную массу заказов.
Телемаркетологи, продажники, менеджеры по продажам звонят клиентам, общаются с ними и вносят заказы. Система в это время начинает жутко «тормозить», вплоть до того, что не формируются отчеты.
Процесс оформления заказов у нас достаточно несложный, его можно увидеть на слайде.
- В УТ продажник оформляет документ «Заказ», с помощью подбора подбирает свободные остатки, и проводит документ.
- При проведении заказа система проверяет, хватает ли свободных остатков, нет ли долгов по дебиторке, все ли условия по оплате выполнены. И, если все хорошо, заказ проводится. Если заказ проведен, то значит, товара клиенту хватит.
- Далее продажник переводит в статус «К отгрузке», вводит на его основании:
- реализацию;
- счет-фактуру;
- наш служебный документ «Распоряжение на склад», который с помощью обменов потом летит к нам в WMS.
Все эти операции, особенно оформление реализации, самому продажнику не нужны. Он уже сделал все, что нужно, чтобы принять заказ – если заказ провелся, то реализация не провестись не может. Она может не провестись только по каким-то техническим проблемам, которые не касаются этого заказа.
Поэтому все эти действия для продажника были, с одной стороны, лишними, просто их кто-то должен был делать. Но, с другой стороны, все проблемы возникали как раз при проведении реализации. Точнее, проблемы были из-за того, что несколько продажников одновременно параллельно проводили реализации, и из-за этого возникали блокировки.
Мы посмотрели на эту проблему и решили сделать так, чтобы реализации создавались и проводились в отдельном потоке фоновым заданием.
Работа продажника сейчас выглядит следующим образом:
- Он оформляет заказ, и если тот проводится, он переводит его в статус «К отгрузке». На этом работа продажника заканчивается. Он переходит к следующему клиенту. Никакие документы он больше не регистрирует.
- При этом, в системе в соответствующий регистр сведений пишется, что появился заказ, по которому надо бы создать реализацию.
- И раз в несколько минут регламентное задание проверяет, есть ли что-то в этом регистре, и если есть, то оно начинает по этим заказам создавать реализации и делает это «в один поток».
Никакой конкуренции за ресурсы между несколькими сеансами не происходит. Реализация создается немного с запозданием, но это не критично. Пользователи оформили заказ и стали работать со следующим клиентом. Реализация все равно через несколько минут будет создана, и все другие задачи будут выполнены.
Результат в данном случае тоже был похожий:
- Мы решили проблему ожидания на блокировках.
- Пропускная способность УТ в этот период увеличилась.
- Пользователи сменили «гнев на милость».
Главное, что с того момента, как у них все «накипело», и они по управленческой структуре дошли до верха, сказали нам: «Сделайте что-нибудь, вы же 1С-ники, вы же программисты», прошло достаточно мало времени до того, как мы поняли, в чем проблема, и решили ее – проверили, протестировали.
VSZ and RSS Linux memory
Что такое VSZ и RSS? Ответ нам даст :VSZ — virtual memory size; RSS — resident set size, the non-swapped physical memory that a task has used (in kiloBytes).
$ man ps|grep -A 3 VSZ ... STANDARD FORMAT SPECIFIERS ... vsz VSZ virtual memory size of the process in KiB (1024-byte units). Device mappings are currently excluded; this is subject to change. (alias vsize). $ man ps|grep -A 3 RSS The SIZE and RSS fields dont count some parts of a process including the page tables, kernel stack, struct thread_info, and struct task_struct. This is usually at least 20 KiB of memory that is always resident. SIZE is the virtual size of the process (code+data+stack). -- rss RSS resident set size, the non-swapped physical memory that a task has used (in kiloBytes). (alias rssize, rsz).
Короче:
- VSZ — виртуально выделенная память, но не означает, что вся она используется. Кто в теме, тот в курсе, что Linux на запрос приложения перевыделяет (overcommitting) памяти больше, чем есть в наличии — прямо как американцы печатают баксов больше, чем фактически обеспечено золотовалютным резервом;
- RSS — фактически занимаемый в данный момент размер оперативки без учёта страниц перемещённых в swap.
Удаление SWAP навсегда
Теперь, когда у вас есть информация об устройствах SWAP в вашей системе, вы сможете легко отключить их. Для начала получите в терминале корневую оболочку. Наличие root имеет решающее значение в этом процессе. Вы можете получить root, выполнив команду su.
su -
Примечание: не удается получить su? Вместо этого вы можете работать с командой sudo -s.
sudo -s
Как только вы получите root-доступ в оболочке, напишите команду swapoff вместе с именем файла подкачки или раздела в конце команды. Например, чтобы отключить файл подкачки на вашем ПК с Linux, вы должны написать следующую команду.
Примечание: в этом примере имя файла подкачки — «файл подкачки». Ваш может отличаться!
swapoff /swapfile
В качестве альтернативы, если на вашем компьютере с Linux есть раздел SWAP, вы можете отключить его с помощью swapoff, за которым следует имя раздела.
Примечание: не забудьте заменить / dev / sdXY на метку вашего раздела подкачки, как показано в / proc / swaps.
swapoff /dev/sdXY
После того, как вы запустите команду swapoff в своей системе Linux, вы фактически отключите ее. Однако SWAP может снова включиться после перезагрузки, если вы не удалите его со своего компьютера.
Чтобы навсегда удалить SWAP из вашей системы Linux, следуйте одной из приведенных ниже инструкций.
Удаление файла SWAP
Многие современные системы Linux перешли на использование файлов SWAP. Наличие файла подкачки — это прекрасно, поскольку от него гораздо проще избавиться, поскольку нет раздела, с которым можно было бы возиться или переформатировать.
Чтобы навсегда отключить и удалить файл SWAP в Linux, выполните следующие команды.
Примечание: как упоминалось ранее, файл подкачки в нашем примере называется «файл подкачки». Обязательно измените имя файла в приведенной ниже команде, если имя файла SWAP вашей системы отличается.
su - cd / rm swapfile
Затем откройте / etc / fstab и удалите строку, в которой указан ваш раздел подкачки.
nano /etc/fstab
Когда вы полностью удалили строку файла SWAP в / etc / fstab, закройте редактор, нажав Ctrl + O и Ctrl + X.
Удаление раздела подкачки
Удаление раздела подкачки немного сложнее, чем файла подкачки, поскольку есть раздел, с которым нужно работать, а не один файл, который можно стереть.
Чтобы начать процесс удаления раздела, установите Gparted, редактор разделов. Не знаете, как его получить? Перейдите на эту страницу Pkgs.org. В нем есть список того, как получить Gparted почти в каждом дистрибутиве.
Примечание: если вы используете Fedora или другой дистрибутив Linux с LVM, вы должны удалить раздел SWAP с Менеджер разделов KDE, а не Gparted, поскольку он позволяет пользователям управлять разделами LVM на лету.
После установки Gparted запустите его. Затем найдите свой раздел подкачки и удалите его, щелкнув раздел правой кнопкой мыши, затем выберите в меню кнопку «Удалить».
Удалив раздел подкачки, нажмите кнопку «Применить» в Gparted, чтобы записать изменения. После этого у вас должен остаться пустой набор свободного места на жестком диске.
Закройте Gparted, когда изменения вступят в силу, и запустите терминал. В терминале откройте файл / etc / fstab в Nano.
sudo nano /etc/fstab
С помощью редактора Nano удалите строку, относящуюся к вашему разделу подкачки. Затем сохраните его с помощью Ctrl + O и выйдите из редактора с помощью Ctrl + X.
Значение для admin_reserve_kbytes
Отметим, что многие описания параметров в документации ядра не только являются не полными, но даже вводят в заблуждение, вот например: «admin_reserve_kbytes defaults to min(3% of free pages, 8MB)«, — 3% от свободных страниц, не объёма, а именно страниц (4 кб страница)? А, что это за 8MB?
Значение admin_reserve_kbytes по-умолчанию
Вот, пожалуйста, не у одного меня возник подобный вопрос на данную тему:
documentation — What’s the default value of the admin_reserve_kbytes kernel parameter? — Unix & Linux Stack Exchange
На машине с Debian Stretch где «MemTotal: 250400 kB» и составило
Однако на другой машине с той же ОС Debian Stretch где «MemTotal: 5083092 kB» и составило
Возможно в других ОС и/или версиях ядра иная ситуация со значением admin_reserve_kbytes по-умолчанию и зависит от реализации функции , а также иных функций ею вызываемых и т.п.: https://elixir.bootlin.com/linux/v5.0/source/mm/mmap.c#L3666
Таким образом, admin_reserve_kbytes:
defaults = как-то в расброс… То, 3% от RAM (без учёта свопа), то 8MB, а бывает и 7616 кб (Ой как бывает! Всё так зыбко и условно: https://www.youtube.com/watch?v=Ta4G51ZMZRM).
Если значение не указано явно, то по-умолчанию может быть равно 3% (без учёта пространства подкачки страниц), и как видим не факт, что 8 МБ будет минимумом даже если 3% до 8 МБ не дотягивает, — короче, как повезёт. Если не хочется гадать, установи его явно.
Оптимальное значение для admin_reserve_kbytes
Если у нас нет удалённого доступа к нашей машине и соответственно пользователей с cap_sys_admin, , то вполне будет достаточно символического 1 кб sysctl -w vm.admin_reserve_kbytes=1, — проверено, с таким значением ничто не загнулось, не взорвалось, ничего страшного не произошло.
А для нахождения оптимального значения admin_reserve_kbytes на удалённом сервере смотрим VmSize (virtual memory size: ) + VmRSS из , для всех основных программ с которыми мы удалённо будем работать, например:
# cat /proc/PID/status|less Name: sshd State: S (sleeping) Tgid: 20532 Pid: 20532 PPid: 1 TracerPid: Uid: Gid: Utrace: FDSize: 64 Groups: VmPeak: 87872 kB VmSize: 87868 kB VmLck: kB VmHWM: 1560 kB VmRSS: 584 kB VmData: 8596 kB VmStk: 88 kB VmExe: 552 kB VmLib: 8444 kB VmPTE: 168 kB VmSwap: 868 kB Threads: 1
Управление памятью сложное
Управление памятью сложно. И именно поэтому для обычного пользователя обычно лучше оставить это ядру.
Легко думать, что вы используете больше оперативной памяти, чем вы. Такие утилиты, как и могут произвести неправильное впечатление. Linux будет использовать свободную оперативную память для различных своих целей, например для кэширования диска. Это искусственно увеличивает показатель «используемой» памяти и уменьшает показатель «свободной» памяти. Фактически, ОЗУ, используемое в качестве дискового кэша, помечается как «использованное» и «доступное», потому что оно может быть восстановлено в любое время, очень быстро.
Для непосвященных это может показаться, что своп не работает или что значение своппинга нужно изменить.
Как всегда, дьявол кроется в деталях. Или, в этом случае, демон. Демон обмена ядрами.
OOM killer
Немного про OOM killer (OOM: out-of-memory)…
Здесь описание параметра совпадает с реальным его поведением. Если, допустим, у нас из «CommitLimit: 10635924 kB» занято «Committed_AS: 7450192 kB«, и мы запустим процесс требующий более 3 ГБ, например Chromium, то OOM killer не обязательно грохнет сам Chromium, который собственно и вызвал «out-of-memory condition», а может выбрать процесс из списка уже работающих, — таким процессом для OOM killer-а оказался другой уже работающий веб-браузер Pale Moon, который занимал до 2 ГБ, в котором на тот момент было открыто много полезных страниц с несохранёнными данными. Т.е., при делается упор на освобождение памяти от уже работающих процессов вугоду только что запущенных.
заставит OOM killer-а тупо мочить любые процессы, которые стали причиной «out-of-memory condition«, — этот вариаинт выбираю потому, что не хочу жертвовать уже работающими процессами. Данный вариант также должен гарантировать прибивание из уже работающих только «психанутых» процессов (вслучай чего с ними станется) вызвавших «out-of-memory condition», вместо наоборот завалить текстовый редактор с несохранёнными данными во благо свихнувшемуся например.
Настройка регламентных и фоновых заданий
Конфигурация программы 1С отличается обилием большого количества фоновых заданий. К ним можно отнести постоянное обновление курса валют, классификаторов банков, новостной ленты, задач бухгалтера и многое другое. Каждый выполняемый программой процесс отбирает ресурсы, как данного софта, так и компьютера. Некоторые из них можно отключить, так как они не особо нужны.
Одним из простых и эффективных решений, чтобы оптимизировать 1С и улучшить производительность, является настройка всех этих процессов, которые выполняются в фоновом режиме. Имеется в виду их полное отключение.
Для этого следует выполнить следующее:
- Поиск пункта «Администрирование» в главном разделе меню, которое перекинет в окно настройки программы. Появится перечень переходов, среди которых необходимо выбрать «Обслуживание».
- В появившемся новом окне необходимо перейти в раздел «Регламентные операции». Здесь будет располагаться ссылка «Регламентные и фоновые задания», по которой следует нажать.
- Будет предоставлен список всех доступных фоновых заданий для ознакомления, большинство которых будет находиться в рабочем состоянии. Об этом свидетельствует галочка, которая стоит слева.
- Выполнить полный просмотр данного списка, чтобы определить для себя ненужные процессы. Чтобы отключить ненужные задания, следует нажать на каждое из них. Появится отдельное окно, где следует снять галочку с пункта «Включено».
- Нажать «Записать и закрыть», чтобы выбранная задача больше не запускалась.
Данные простые, но достаточно эффективные, действия позволят повысить производительность и скорость программы 1С. Она будет шустрее работать и не будет терять драгоценные ресурсы. При необходимости выключенные задания можно повторно включить.
Как включить функцию очищения файла подкачки
При работе компьютера некоторые данные при необходимости попадают в файл подкачки. Избежать его полноценного заполнения можно при помощи своевременного очищения. Для этого достаточно установить функцию очищения файла подкачки перед каждым завершением работы компьютера. Для это потребуется выполнить несколько простых шагов (указанная ниже инструкция одновременно подходит для Windows 7 и Windows 10). Этот способ работает только для пользователей профессиональных версий Windows и выше, так как в более простых вариациях операционной системы, например, в Windows Домашняя (Home) отсутствуют локальные политики.
Зажимаем комбинацию клавиш «Win+R» для вызова окна «Выполнить» и вводим «secpol.msc» без кавычек. Нажимаем кнопку «ОК» для открытия окна «Локальная политики безопасности».
Раскрываем слева папку «Локальные политики» и открываем «Параметры безопасности».
Находим в списке политику «Завершение работы: очистка файла подкачки виртуальной памяти» и щёлкаем на неё двойным нажатием левой кнопки мыши.
Ставим маркер возле опции «Включён» и сохраняем изменения при помощи клавиши «Применить».
Теперь перед каждым выключением компьютера операционная система автоматически будет очищать файл подкачки.
Как освободить оперативную память Windows 10
Чтобы понять, как освободить оперативную память на компьютере Windows 10, лучше использовать все описанные способы, потому что один не принесет должного эффекта.
Закрытие фоновых приложений
На ноутбуке и ПК, кроме основных приложений, существуют приложения, которые работают в фоновом режиме.
Они не видны пользователю, и находят важную информацию или ведут расчеты. Бывают случаи, когда работа фоновых приложений важна, а бывает и нет — их можно отключить.
- Нужно открыть диспетчер задач и найти вкладку «Подробности». Там можно посмотреть список всех процессов, которые выполняются.
- Необходимо закрыть те приложения, которые пользователь не использует.
Фото: kevin-seoshnik.ru/Закрытие фоновых приложений
Закрытие неиспользуемых приложений
Перед тем, как почистить память компьютера Windows, нужно ознакомиться с открытыми программами.
Если какие-то из них не нужны в данный момент, их можно закрыть. Открыв диспетчер задач, можно узнать список запущенных приложений и понять, какую часть памяти они используют.
Используя вкладку «Снять задачу» в диспетчере, можно закрыть неиспользуемые приложения.
Фото: kevin-seoshnik.ru/Закрытие неиспользуемых программ
Перезапуск проводника
При его выключении система прекратит работать, так как не будет видеть жесткий диск. При его перезапуске можно завершить зависшие процессы в системе.
- Открыв диспетчер задач, пользователь должен найти проводник.
- Необходимо выбрать пункт меню «Перезапустить», нажав по нему правой кнопкой мышки. После перезагрузки процесса нужно выяснить, помогло это освободить память или нет.
Фото: kevin-seoshnik.ru/Перезапуск проводника
Отключение автозагрузки программ
Если приложениям разрешена автозагрузка, они могут произвольно запуститься при повторном запуске ноутбука или ПК.
Чтобы они перестали иметь право на автозапуск, следует в диспетчере задач найти вкладку «Автозагрузка», по очереди выделить программы из списка и для каждой нажать на кнопку «Отключить».
Фото: kevin-seoshnik.ru/Отключение автозагрузки программ
Удаление вирусов
Есть вирусы, которые специализируются на перегрузке ОЗУ. Они замедляют работу системы, заражая и притормаживая ее.
Необходимо воспользоваться антивирусом, чтобы начать диагностику и освободить систему от вирусов.
Использование специальных программ для чистки ОЗУ
Чтобы очистить оперативную памяти Windows 10 воспользуйтесь программами RAM Booster и MZ RAM Booster — можно бесплатно скачать на сайте.
RAM booster программа для очистки ОЗУ
RAM booster — информирует о загрузке оперативной памяти.
Программа предоставляет возможность настроить определенные условия, используя которые процесс очищения памяти будет осуществляться автоматически.
Для использования ручной очистки нужно нажать на кнопку «Освободить память сейчас» на главной странице программы.
RAM booster программа для очистки ОЗУ
MZ RAM Booster статистика о степени загрузки оперативной памяти
MZ RAM Booster — дает статистику и информацию о степени загрузки ОЗУ. Программа помогает изменить определенные параметры работы с памятью.
Для ее быстрой очистки нужно на главной странице приложения кликнуть по кнопке «Очистка RAM».
Принцип работы
Nohang в виде демона постоянно находится в оперативной памяти устройства (потребляет ~10 Мб ОЗУ) и следит за свободным количеством оперативной памяти и своп-раздела. Как только наступает условие явной нехватки ОЗУ и свопа (эти параметры указываются в конфигурационном файле приложения) Nohang принудительно завершает «жирное» приложение, вызвавшее нехватку оперативной памяти устройства.
В качестве примера — скриншот окна монитора ресурсов KDE, на котором отображена работа демона Nohang.
Наглядная демонстрация работы Nohang по предотвращению переполнения ОЗУ
На среднем графике видны факты наступления состояния OOM (переполнения памяти) ОЗУ компьютера, на котором производился эксперимент. Оперативная память накачивалась бесполезными пустыми данными с помощью команды:
Осторожно! Выполнение данной команды может привести (и без установленных утилит вроде Nohang — 100% приведёт) к переполнению оперативной памяти устройства и его зависанию, сколько бы ОЗУ в нём не было установлено!
Как видно, после первой попытки своп заполнился на 100% (в качестве свопа использовался раздел zRam) так же, как и ОЗУ, после чего Nohang прибивает процесс tail и оперативная память снова освобождается, возвращаясь к значению свободного места, которое имела до начала эксперимента. Интересно то, что своп остаётся заполненным практически на 100%, но при следующих попытках исчерпать всю доступную ОЗУ это не приводит к зависанию всей системы, и Nohang снова завершает прожорливый процесс tail, освобождаю ОЗУ. По субъективным ощущениям для пользователя, происходит кратковременное подтормаживание системы на пару секунд, после чего контроль над системой возвращается без каких-либо проблем. В общем — сказка!
Что такое физическая память?
Физическая память (или ОЗУ», RAM», «оперативка») — это энергозависимая память, установленная в компьютере. Для её работы требуется непрерывный поток электричества. Перебои с электропитанием или внезапное выключение компьютера могут привести к стиранию хранящихся в ней данных. Кроме того, эта память является линейно адресуемой. Другими словами, значения адресов памяти увеличиваются линейным образом.
Запуская и исполняя программы, процессор напрямую обращается к физической памяти. Обычно программы хранятся на жестком диске. Время доступа процессора к диску значительно превышает аналогичное время доступа к физической (оперативной) памяти. Чтобы процессор мог выполнять программы быстрее, они сначала помещаются в физическую (оперативную) память. После завершения своей работы, они возвращаются обратно на жесткий диск. Освобожденная таким образом память может быть выделена новой программе. При выполнении данные программы называются процессами.
Свертка информационной базы
Информационная база может содержать большие объемы информации, с которыми в обычном режиме программа может справляться некорректно. Чтобы это исправить, необходимо выполнить сверку ИБ. Это позволит избежать замедления работоспособности программы 1С, когда будет со временем увеличиваться размер базы данных.
Главные преимущества данного решения:
- Уменьшается объем информационной базы, что позволяет программе 1С работать быстрее и меньше тратить времени на выполнение различных обновлений или резервного копирования.
- Позволяет почистить базу данных от различного рода недочетов, которые могут возникать в процессе работы. Большое количество таких недочетов может привести к расхождению по договорам между контрагентами, подбору ошибочного договора и тому подобное.
- Позволяет избавиться от допустимых новичками ошибок, которые вручную исправить проблематично. Сверка позволяет выполнить корректировку остатков, чтобы с нового рабочего периода начать все с чистого листа.
Инструмент «Свертка информационной базы» находится в меню «Администрирование» -> «Сервис»
Важно помнить, что данный процесс является необратимым. Программа сама будет предлагать выполнить резервное копирование
Следует определить для этого место на жестком диске.
После этого следует выполнить следующее:
- Указать дату, на которую будут формироваться остатки. В этом разделе можно установить галочку напротив «Установить дату запрета изменения данных (рекомендуется)». Ее можно не устанавливать, если необходимо выполнить редактирование сформированного документа с остатками.
- При выполнении учета по нескольким предприятиям, программа будет предлагать выполнять данный процесс по конкретным организациям или сразу по всем.
- Теперь необходимо следовать всем шагам помощника, попутно выполняя настройку по всем доступным регистрам.
Свертка позволяет формировать остатки на конкретную дату, а также удалять старые и ненужные документы. Таким образом, можно уменьшить общий объем информационной базы, чтобы облегчить работу программе 1С.