Intereting Posts
Как вы могли бы перейти с Windows AD на Linux-сервер LDAP? Как я могу обрезать монитор 1920×1200 до 1920×1080? Как установить Windows 7 после Fedora 16 VM «забывают» MAC-адрес шлюза на хосте Ubuntu 14.04, настроенном как шлюз, используя 1 сетевой адаптер с двумя IP-адресами в разных подсетях Как заставить ALSA-выход как одноканальный? Ubuntu 10.10 установлен из Windows 7: как расширить диск? OpalCryptoErase.exe для Linux Как я могу отслеживать доступ к дисковому сектору в Linux? ArchLinux монтирует файловую систему без записей в / etc / fstab Как удалить ненужные символы из файла, сгенерированного командой script в linux Как точно выполнить команды grep? Редактирование столбцов с помощью awk или sed. как напечатать следующий шаблон? Если у меня есть два жестких диска, может ли жесткий диск 1 быть / dev / sda на одной загрузке, будучи / dev / sdb на другой загрузке? Выполняет ли cron выполнение асинхронно? сравнение значений десятичной точки в выражении if

Слишком большое использование swap?

У меня есть Debian Sid box, недавно установленный около месяца назад, без настольных приложений, работающих на данный момент.

Любая команда, которую я пытаюсь запустить (через ssh), затрудняет работу жесткого диска. Система работает безупречно несколько недель назад во время работы Ubuntu 8.04. Аппаратное обеспечение должно быть в порядке, интеллектуальные инструменты не сообщают о проблемах, а также не проверяют память и т. Д.

Я подозреваю, что проблема связана с заменой:

$ free -h total used free shared buffers cached Mem: 998M 986M 12M 0B 464K 904M -/+ buffers/cache: 81M 917M Swap: 511M 511M 0B 

Тестирование материала, я вижу, что я не могу отключить swap без перезагрузки, хотя большинство физических RAM используется для кэшей:

 # swapoff -a swapoff: /swapfile: swapoff failed: Cannot allocate memory 

При запуске скрипта, упомянутого в этом ответе stackoverflow , самый высокий процесс использования swap использовал только 1,5 миллиона, а общее количество было:

 "Overall swap used: 18376 kB" 

… который далек от половины концерта, который содержит или бесплатный отчет.

Я попытался изменить swappiness до полутора месяцев назад, но нет никакой разницы (одинаковые шаблоны использования памяти).

Любая идея, что может быть виновником?

Изменить : вот содержимое /proc/meminfo (аналогичная ситуация, но 702megs кеша вместо 904, и хром все еще открыт):

 MemTotal: 1022464 kB MemFree: 14344 kB Buffers: 192 kB Cached: 719816 kB SwapCached: 2212 kB Active: 304304 kB Inactive: 657344 kB Active(anon): 294128 kB Inactive(anon): 651264 kB Active(file): 10176 kB Inactive(file): 6080 kB Unevictable: 0 kB Mlocked: 0 kB HighTotal: 127336 kB HighFree: 316 kB LowTotal: 895128 kB LowFree: 14028 kB SwapTotal: 524284 kB SwapFree: 0 kB Dirty: 4 kB Writeback: 0 kB AnonPages: 239528 kB Mapped: 11968 kB Shmem: 703760 kB Slab: 28924 kB SReclaimable: 12116 kB SUnreclaim: 16808 kB KernelStack: 2200 kB PageTables: 5812 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 1035516 kB Committed_AS: 2193368 kB VmallocTotal: 122880 kB VmallocUsed: 14092 kB VmallocChunk: 105548 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 911352 kB DirectMap2M: 0 kB 

И вот top -b -n 1 вывод:

 top - 22:00:18 up 1 day, 2:34, 4 users, load average: 1,97, 1,25, 0,88 Tasks: 137 total, 3 running, 134 sleeping, 0 stopped, 0 zombie %Cpu(s): 4,9 us, 3,0 sy, 2,7 ni, 83,2 id, 6,1 wa, 0,0 hi, 0,0 si, 0,0 st KiB Mem: 1022464 total, 1008788 used, 13676 free, 188 buffers KiB Swap: 524284 total, 524284 used, 0 free, 719792 cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 7861 stenyak 20 0 6336 1252 976 R 18,0 0,1 0:00.03 top 5194 isabel 30 10 44372 5344 1404 R 12,0 0,5 0:36.11 glmatrix 17940 root 20 0 103m 6844 2828 S 6,0 0,7 11:02.21 Xorg 1 root 20 0 2280 28 0 S 0,0 0,0 0:02.49 init 2 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0,0 0,0 0:15.25 ksoftirqd/0 5 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kworker/u:0 6 root rt 0 0 0 0 S 0,0 0,0 0:00.93 migration/0 7 root rt 0 0 0 0 S 0,0 0,0 0:00.46 watchdog/0 8 root rt 0 0 0 0 S 0,0 0,0 0:00.73 migration/1 10 root 20 0 0 0 0 S 0,0 0,0 0:17.30 ksoftirqd/1 12 root rt 0 0 0 0 S 0,0 0,0 0:00.43 watchdog/1 13 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 cpuset 14 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 khelper 15 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kdevtmpfs 16 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 netns 17 root 20 0 0 0 0 S 0,0 0,0 0:00.44 sync_supers 18 root 20 0 0 0 0 S 0,0 0,0 0:00.00 bdi-default 19 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kintegrityd 20 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kblockd 22 root 20 0 0 0 0 S 0,0 0,0 0:00.07 khungtaskd 23 root 20 0 0 0 0 D 0,0 0,0 2:50.47 kswapd0 24 root 25 5 0 0 0 S 0,0 0,0 0:00.00 ksmd 25 root 20 0 0 0 0 S 0,0 0,0 0:00.00 fsnotify_mark 26 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 crypto 99 root 20 0 0 0 0 S 0,0 0,0 0:00.00 khubd 115 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 ata_sff 116 root 20 0 0 0 0 S 0,0 0,0 0:00.00 scsi_eh_0 117 root 20 0 0 0 0 S 0,0 0,0 0:00.00 scsi_eh_1 118 root 20 0 0 0 0 S 0,0 0,0 0:01.66 kworker/u:1 152 root 20 0 0 0 0 S 0,0 0,0 0:02.12 jbd2/sda1-8 153 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 ext4-dio-unwrit 280 root 20 0 2944 352 128 S 0,0 0,0 0:00.30 udevd 423 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 hd-audio0 1286 root 20 0 0 0 0 S 0,0 0,0 0:07.06 jbd2/sda2-8 1287 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 ext4-dio-unwrit 1561 root 20 0 0 0 0 S 0,0 0,0 0:03.09 flush-8:0 1603 root 20 0 2376 48 0 S 0,0 0,0 0:00.33 rpcbind 1634 statd 20 0 2648 68 64 S 0,0 0,0 0:00.00 rpc.statd 1639 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 rpciod 1641 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 nfsiod 1648 root 20 0 2576 0 0 S 0,0 0,0 0:00.00 rpc.idmapd 2019 root 20 0 29088 976 0 S 0,0 0,1 0:22.26 rsyslogd 2123 root 20 0 1876 84 24 S 0,0 0,0 0:00.23 acpid 2161 message+ 20 0 3756 728 0 S 0,0 0,1 0:02.06 dbus-daemon 2213 daemon 20 0 2152 20 0 S 0,0 0,0 0:00.00 atd 2231 root 20 0 4488 220 128 S 0,0 0,0 0:00.00 bluetoothd 2242 root 10 -10 0 0 0 S 0,0 0,0 0:00.00 krfcommd 2259 avahi 20 0 3272 292 168 S 0,0 0,0 0:00.66 avahi-daemon 2262 avahi 20 0 3156 24 0 S 0,0 0,0 0:00.00 avahi-daemon 2265 root 20 0 5968 180 152 S 0,0 0,0 0:00.00 bitlbee 2271 root 20 0 0 0 0 S 0,0 0,0 0:11.69 kworker/0:2 2304 root 20 0 19056 700 220 S 0,0 0,1 0:00.75 NetworkManager 2334 root 20 0 5536 176 108 S 0,0 0,0 0:02.86 cron 2350 root 20 0 6700 492 152 S 0,0 0,0 0:00.01 sudo 2351 root 20 0 15304 5880 1428 R 0,0 0,6 61:42.79 iotop 2359 root 20 0 24256 600 56 S 0,0 0,1 0:01.12 polkitd 2390 root 20 0 6892 368 180 S 0,0 0,0 0:00.15 modem-manager 2392 root 20 0 7536 80 0 S 0,0 0,0 0:00.13 cupsd 2396 root 20 0 20964 516 296 S 0,0 0,1 0:00.15 gdm3 2712 root 20 0 10068 196 84 S 0,0 0,0 0:11.72 kerneloops 2714 root 20 0 6896 2108 372 S 0,0 0,2 0:05.69 ddclient - slee 2802 Debian-+ 20 0 7424 100 40 S 0,0 0,0 0:00.05 exim4 2877 daemon 20 0 1868 236 172 S 0,0 0,0 0:01.22 uptimed 2881 root 20 0 6464 208 104 S 0,0 0,0 0:00.27 sshd 2913 root 20 0 1848 72 8 S 0,0 0,0 0:00.00 minissdpd 2936 root 20 0 4328 40 36 S 0,0 0,0 0:00.00 getty 2937 root 20 0 4328 40 36 S 0,0 0,0 0:00.00 getty 2938 root 20 0 4328 40 36 S 0,0 0,0 0:00.00 getty 2939 root 20 0 4328 40 36 S 0,0 0,0 0:00.00 getty 2940 root 20 0 4328 40 36 S 0,0 0,0 0:00.00 getty 2941 root 20 0 4328 40 36 S 0,0 0,0 0:00.00 getty 2961 root 20 0 23384 540 156 S 0,0 0,1 0:00.88 accounts-daemon 2965 root 20 0 29216 292 64 S 0,0 0,0 0:01.35 console-kit-dae 3050 root 20 0 27408 320 0 S 0,0 0,0 0:00.48 upowerd 3115 stenyak 20 0 6260 320 84 S 0,0 0,0 0:00.51 screen 3119 stenyak 20 0 6260 248 40 S 0,0 0,0 0:00.61 screen 3121 stenyak 20 0 6260 132 16 S 0,0 0,0 0:00.48 screen 3124 stenyak 20 0 6388 1004 572 S 0,0 0,1 1:33.81 p2p.sh 3125 stenyak 20 0 34176 5604 1764 S 0,0 0,5 1:57.10 quasselcore 3129 stenyak 20 0 55268 2972 652 S 0,0 0,3 3:00.32 bot.py 3280 rtkit 21 1 18980 180 64 S 0,0 0,0 0:01.23 rtkit-daemon 3367 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kauditd 3684 root 20 0 2940 340 112 S 0,0 0,0 0:00.00 udevd 3685 root 20 0 2940 208 0 S 0,0 0,0 0:00.00 udevd 5845 root 20 0 6444 904 592 S 0,0 0,1 0:00.00 cron 5876 stenyak 20 0 1932 428 368 S 0,0 0,0 0:00.00 sh 5878 stenyak 20 0 6048 1232 1080 S 0,0 0,1 0:00.00 memmon.sh 7857 stenyak 20 0 5060 508 448 S 0,0 0,0 0:00.00 sleep 9071 root 20 0 9816 860 200 S 0,0 0,1 0:00.10 sshd 9080 stenyak 20 0 10180 1112 136 S 0,0 0,1 0:06.93 sshd 9081 stenyak 20 0 9280 3232 148 S 0,0 0,3 0:00.62 bash 9436 root 20 0 7396 1188 684 S 0,0 0,1 0:07.05 bitlbee 10285 root 20 0 0 0 0 S 0,0 0,0 0:00.00 kworker/1:0 12728 stenyak 20 0 7960 2960 648 S 0,0 0,3 23:35.01 htop 12950 root 20 0 9832 80 76 S 0,0 0,0 0:00.08 sshd 12955 stenyak 20 0 9832 0 0 S 0,0 0,0 0:00.04 sshd 12956 stenyak 20 0 9304 36 32 S 0,0 0,0 0:00.64 bash 17939 root 20 0 23284 1080 320 S 0,0 0,1 0:00.11 gdm-simple-slav 18062 root 20 0 29808 964 364 S 0,0 0,1 0:00.38 gdm-session-wor 20066 root 20 0 0 0 0 S 0,0 0,0 0:09.72 kworker/0:0 28369 isabel 20 0 1932 112 108 S 0,0 0,0 0:00.03 sh 28404 isabel 20 0 3868 260 68 S 0,0 0,0 0:00.20 ssh-agent 28407 isabel 20 0 3516 0 0 S 0,0 0,0 0:00.00 dbus-launch 28408 isabel 20 0 3420 304 116 S 0,0 0,0 0:00.24 dbus-daemon 28416 isabel 20 0 6344 744 548 S 0,0 0,1 0:00.29 xfconfd 28422 isabel 20 0 8336 496 248 S 0,0 0,0 0:01.46 xscreensaver 28424 isabel 20 0 21932 580 340 S 0,0 0,1 0:00.17 xfce4-session 28430 isabel 20 0 24392 2032 1160 S 0,0 0,2 0:16.32 xfwm4 28432 isabel 20 0 117m 2072 908 S 0,0 0,2 0:01.26 xfce4-panel 28434 isabel 20 0 22520 256 256 S 0,0 0,0 0:00.06 Thunar 28436 isabel 20 0 21016 688 460 S 0,0 0,1 0:00.06 xfsettingsd 28437 isabel 20 0 119m 3344 1312 S 0,0 0,3 0:03.50 xfdesktop 28441 isabel 20 0 21072 272 268 S 0,0 0,0 0:00.07 kerneloops-appl 28443 isabel 20 0 29816 540 228 S 0,0 0,1 0:00.10 polkit-gnome-au 28450 isabel 20 0 263m 544 276 S 0,0 0,1 0:00.30 xfce4-volumed 28452 isabel 20 0 63936 488 0 S 0,0 0,0 0:00.31 tracker-store 28457 isabel 20 0 23240 768 472 S 0,0 0,1 0:00.18 xfce4-settings- 28460 isabel 9 -11 99532 500 248 S 0,0 0,0 0:00.38 pulseaudio 28470 isabel 20 0 21936 612 312 S 0,0 0,1 0:00.20 panel-6-systray 28472 isabel 20 0 339m 1348 552 S 0,0 0,1 0:00.42 xfce4-mixer-plu 28473 isabel 20 0 22028 2292 1740 S 0,0 0,2 0:59.33 xfce4-oragecloc 28514 isabel 20 0 371m 21m 2428 S 0,0 2,1 3:46.22 chromium 28517 isabel 20 0 111m 3020 288 S 0,0 0,3 0:00.58 chromium 28518 isabel 20 0 1948 64 0 S 0,0 0,0 0:00.00 chromium-sandbo 28519 isabel 20 0 120m 3324 288 S 0,0 0,3 0:00.20 chromium 28522 isabel 20 0 128m 3252 204 S 0,0 0,3 0:00.01 chromium 28558 isabel 20 0 208m 52m 476 S 0,0 5,3 1:25.92 chromium 28573 isabel 20 0 271m 103m 1244 S 0,0 10,3 3:01.64 chromium 28693 isabel 20 0 120m 3836 628 S 0,0 0,4 0:43.86 chromium 28696 isabel 20 0 83088 6412 108 S 0,0 0,6 0:16.55 GoogleTalkPlugi 28706 isabel 20 0 159m 6896 972 S 0,0 0,7 9:00.72 chromium 32332 root 20 0 0 0 0 S 0,0 0,0 0:06.24 kworker/1:2 32351 stenyak 9 -11 99108 1032 192 S 0,0 0,1 0:00.51 pulseaudio 32455 root 20 0 9816 108 76 S 0,0 0,0 0:00.11 sshd 32460 stenyak 20 0 9992 264 144 S 0,0 0,0 0:07.43 sshd 32462 stenyak 20 0 9300 1976 108 S 0,0 0,2 0:01.31 bash 

    Вы не можете выполнить swapoff, потому что объем памяти с измененной памятью не может быть превышен вашей оперативной памятью. Вы получаете законное сообщение об ошибке.

    Маленький фрагмент.

     if (!quiet || errno == ENOMEM) warn(_("%s: swapoff failed"), orig_special); return -1; 

    На мой взгляд, ваша рабочая нагрузка увеличивает ваш объем оперативной памяти. Вы выполняете рабочую нагрузку, которая требует больше памяти. Использование всего свопа указывает на это. Кроме того, изменение swappiness к 1 может быть не мудрым решением. Установка swappiness на 1 не означает, что замена не будет выполнена. Это просто указывает на то, насколько агрессивным ядром будет заниматься обмен, он не отменяет обмен. Если потребуется, произойдет обмен.

    Кроме того, я не знаю, почему вы пытаетесь отключить своп. Если у вас нет тонн и тонны ОЗУ, вам не следует отключать своп.

    Конечно, вы можете перезагружать, а обмен swap будет равен нулю. И тогда вы можете спокойно переустановить. Но это не решит проблему в долгосрочной перспективе.

    Не могли бы вы опубликовать вывод /proc/meminfo .

    Одной из возможных причин было бы, чтобы ваш /tmp был установлен на tmpfs , то есть в файловой системе, поддерживаемой памятью.

    Если это так ( df -hT /tmp ), просто удалите / переместите туда файлы, убедитесь, что приложение снова не заполнило / tmp (или какая-либо файловая система, смонтированная на tmpfs : df -ht tmpfs ), и эта проблема будет решена.

    Обратите внимание, что на самом деле неплохо, если система свопит память в swap и вместо этого использует память для буферов. Это, вероятно, указывает на две вещи:

    • у вас есть несколько приложений (~ 500 МБ), которые не используются много
    • вы используете другие приложения, которые читают / записывают много данных, более 1 ГБ ОЗУ, которые у вас есть. Система пытается повысить производительность для этих приложений путем буферизации данных жесткого диска в памяти для более быстрого доступа

    Да, может показаться, что вы используете только память ~ 600 МБ. То, что вызывает обмен системой, вероятно, не является чрезмерно большим объемом памяти, но очень тяжелая рабочая нагрузка ввода-вывода, попадающая в буферы. Можете ли вы определить, какой процесс выполняет все операции ввода-вывода? Для чего вы используете сервер?

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

    Linux поставляется с инструментом с именем smem . Для установки в Debian / Ubuntu вы сможете использовать (в процессе установки будет установлено много пакетов python):

     apt-get install smem 

    Затем, чтобы использовать его, просто введите smem в командной строке.


    Другое решение, чтобы узнать, сколько времени используется текущим обменом процессом, вы хотите проверить параметр VmSwap в файле status процесса.

    Используя top или htop или ps или pgrep или pidof … определите идентификатор процесса ( PID ), а затем посмотрите файл состояния:

     $ pidof myprocess 123 $ cat /proc/123/status 

    Сюда входит информация о памяти, которая в настоящее время используется процессом. Существует пример:

     Name: snapinit State: S (sleeping) Tgid: 2769 Ngid: 0 Pid: 2769 PPid: 1 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 64 Groups: NStgid: 2769 NSpid: 2769 NSpgid: 2765 NSsid: 2765 VmPeak: 141952 kB VmSize: 141952 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 11552 kB VmRSS: 3444 kB VmData: 772 kB VmStk: 136 kB VmExe: 244 kB VmLib: 62356 kB VmPTE: 208 kB VmPMD: 12 kB VmSwap: 1968 kB HugetlbPages: 0 kB Threads: 1 SigQ: 0/3912 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000014006 SigIgn: 0000000000001000 SigCgt: 00000001800004c8 CapInh: 0000000000000000 CapPrm: 0000003fffffffff CapEff: 0000003fffffffff CapBnd: 0000003fffffffff CapAmb: 0000000000000000 Seccomp: 0 Cpus_allowed: 1 Cpus_allowed_list: 0 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 36 nonvoluntary_ctxt_switches: 23 

    Интересующая секция – это та, которая показывает параметры Vm<name> (т.е. виртуальная память, которая является единственным видом памяти, доступной для процесса, только ядро ​​имеет дело с реальной физической памятью, VM создается вашим MMU ):

     VmPeak: 141952 kB VmSize: 141952 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 11552 kB VmRSS: 3444 kB VmData: 772 kB VmStk: 136 kB VmExe: 244 kB VmLib: 62356 kB VmPTE: 208 kB VmPMD: 12 kB VmSwap: 1968 kB 

    В моем случае я вижу, что память подкачки (VmSwap), используемая этим процессом, равна 1968Kb, почти 2Mb.

    Параметр VmLib показывает объем памяти, используемый для разделяемых библиотек (.so-файлов). Хотя это выглядит огромным, помните, что память, используемая совместно используемыми библиотеками, … разделена между всеми процессами.

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

     #!/bin/sh echo " NAME PID SWAP" for PID in /proc/[0-9]* do if stat $PID/status >/dev/null then # get name of process procname=`grep 'Name:' $PID/status | awk -e '{ print $2 };'` # get amount of swap in use by that process procswap=`grep 'VmSwap:' $PID/status | awk -e '{ print $2 };'` printf "%-21s %11d %11d\n" $procname `basename $PID` $procswap fi done 

    Обратите внимание, что файл $ PID / status исчезнет, ​​когда процесс завершится, и цикл for не проверяет это правильно. Также некоторые файлы не могут быть прочитаны обычным пользователем (т. Е. Если вы являетесь пользователем root, вы увидите результат для каждого процесса, иначе некоторые процессы просто вернут ошибку или 0Kb.)

    Имеется выборка. Данные SWAP представляют Kilo Bytes .

      NAME PID SWAP systemd 1 348 watchdog/0 10 0 ipv6_addrconf 106 0 ureadahead 13234 28 gnome-calculato 13997 0 apache2 14175 7240 freshclam 1447 3072 systemd-logind 1449 244 

    swap заполнен, поэтому вам нужно остановить какой-то процесс, для уничтожения процесса используйте kill -9 PID Затем используйте sudo swapoff -a

    В моем состоянии я останавливаю своего помощника sidekiq, а затем перераспределяет память подкачки.

    память подкачки digitalocean