powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Определить кто использует SWAP
17 сообщений из 17, страница 1 из 1
Определить кто использует SWAP
    #36768066
Доброго времени суток!

Подскажите пожалуйста, как определить что находится в swap области

Код: plaintext
1.
2.
3.
[root@mysrv]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
  1   11   11059052    91244    25252   31176508      0    113      71     957    370    312    6    2   69   23    0 
11 Gb информации находится в swap - интересно что это... подскажите пожалуйста как посмотреть?

Заранее благодарю!
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36768747
exST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий_КунинДоброго времени суток!

Подскажите пожалуйста, как определить что находится в swap области

Код: plaintext
1.
2.
3.
[root@mysrv]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
  1   11   11059052    91244    25252   31176508      0    113      71     957    370    312    6    2   69   23    0 
11 Gb информации находится в swap - интересно что это... подскажите пожалуйста как посмотреть?

Заранее благодарю!

Под AIXом svmon!
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36768751
astern
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий_Кунин,

Огласите версию ОС.
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769134
авторДмитрий_Кунин,

Огласите версию ОС.
RHEL5
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769164
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий_Кунин,

Код: plaintext
1.
2.
man ps, sz, vsz

[root@redhat01 ~]# ps -eao pid,comm,vsz,sz
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769276
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter, вы полагаете, что значение virtual size - resident size покажет использование свопа?
это не так. процесс может "промаппить" хоть весь диск не съев при этом памяти.
нужен какой-то другой способ поточнее.
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769304
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind,

man top o: VIRT -- Virtual Image (kb)
The total amount of virtual memory used by the task. It includes all code, data and shared libraries plus pages that have been swapped out. (Note: you can define the STATSIZE=1 environment variable and
the VIRT will be calculated from the /proc/#/state VmSize field.)

VIRT = SWAP + RES.

p: SWAP -- Swapped size (kb)
The swapped out portion of a taskâs total virtual memory image.

q: RES -- Resident size (kb)
The non-swapped physical memory a task has used.

RES = CODE + DATA.

r: CODE -- Code size (kb)
The amount of physical memory devoted to executable code, also known as the âtext resident setâ size or TRS.
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769317
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Процессы отсортированные по макс. SWAP

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
top - 14:30:30 up 67 days, 23:30,  1 user,  load average: 0.01, 0.01, 0.08
Tasks: 225 total,   1 running, 224 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  12150784k total, 11971612k used,   179172k free,  4848880k buffers
Swap:  2031608k total,      240k used,  2031368k free,  6289540k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  RUSER    SWAP COMMAND
 6447 root      15   0  299m  10m 1568 S  0.0  0.1   1:41.94 root     289m python
 5907 root      34  19  251m  16m 2224 S  0.0  0.1   0:00.90 root     235m yum-updatesd
 7554 gdm       15   0  246m  21m 8796 S  0.0  0.2   0:00.43 gdm      225m gdmgreeter
 5362 root      15   0  213m  13m 2460 S  0.0  0.1   0:39.34 root     200m libvirtd
 7528 root      18   0  190m 2396 1660 S  0.0  0.0   0:00.00 root     187m gdm-binary
 5106 root      18   0  205m  21m 6208 S  0.0  0.2   6:35.04 root     183m dsm_om_connsvc3
 7556 gdm       16   0  186m 2820 1988 S  0.0  0.0   0:00.09 gdm      183m bonobo-activati
22395 root      17   0  186m 2952 1992 S  0.0  0.0   0:00.07 root     183m bonobo-activati
 7530 root      25   0  185m 4180 3456 S  0.0  0.0   0:00.00 root     181m gdm-rh-security
 7433 root      15   0  168m 3108 2184 S  0.0  0.0   0:00.10 root     164m gdm-binary
 6446 root      18   0  152m 6116  560 S  0.0  0.1   0:00.00 root     146m python
 4106 root      18   0  151m 6716  972 S  0.0  0.1   0:00.01 root     144m python
 4116 root      15   0  132m 2824 1872 S  0.0  0.0   0:00.01 root     129m cupsd
 4336 root      18   0  107m 2208 1776 S  0.0  0.0   0:00.00 root     105m dsm_om_shrsvc32
 7561 gdm       15   0  104m 3500 2788 S  0.0  0.0   0:00.15 gdm      101m at-spi-registry
 7531 root      15   0 98.6m 6252 4284 S  0.0  0.1   0:05.22 root      92m Xorg
 3746 root      11  -4 92868  868  600 S  0.0  0.0   0:01.35 root      89m auditd
18909 root      15   0 90116 3376 2632 S  0.0  0.0   0:00.17 root      84m sshd
19297 root      15   0  104m  22m 8496 S  0.0  0.2  17:19.83 root      81m qemu-dm
22956 root      15   0  101m  20m 8468 S  0.0  0.2  12:42.97 root      81m qemu-dm
 7148 root      15   0  100m  20m 8472 S  0.0  0.2  22:14.73 root      80m qemu-dm
 3748 root       7  -8 81808  824  644 S  0.0  0.0   0:00.26 root      79m audispd
 4735 root      17   0 86444 6532 3812 S  0.0  0.1   1:45.04 root      78m dsm_sa_datamgr3
 4279 root      15   0 74808 1168  596 S  0.0  0.0   0:00.95 root      71m crond
 5174 root      15   0 76040 2408  132 S  0.0  0.0   0:00.00 root      71m dsm_sa_datamgr3
 4252 root      15   0 71096 2364  812 S  0.0  0.0   0:00.06 root      67m sendmail
 4208 root      18   0 65264  276  140 S  0.0  0.0   0:00.00 root      63m rpc.rquotad
18911 root      15   0 66172 1632 1204 S  0.0  0.0   0:00.01 root      63m bash
 4128 root      15   0 63508 1208  652 S  0.0  0.0   0:00.00 root      60m sshd
 3423 root      15   0 59308  684  512 S  0.0  0.0   0:00.00 root      57m brcm_iscsiuio
 5390 root      15   0 58880  328  252 S  0.0  0.0   0:00.00 root      57m rhnsd
 4260 smmsp     18   0 57688 1792  644 S  0.0  0.0   0:00.00 smmsp     54m sendmail
 4084 root      20   0 56452 1520 1116 S  0.0  0.0   0:00.13 root      53m automount
14094 root      15   0 57876 3360 2836 S  0.0  0.0   0:00.02 root      53m nm-system-setti
 3878 root      15   0 48716  788  324 S  0.0  0.0   0:00.00 root      46m rpc.idmapd
 4025 root      18   0 43764 1632  752 S  0.0  0.0   0:02.43 root      41m pcscd
 6451 root      15   0 30228  644  500 S  0.0  0.0   0:00.00 root      28m blktapctrl
 5502 haldaemo  15   0 31376 4460 1592 S  0.0  0.0   0:01.71 haldaemo  26m hald
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769325
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,ну давайте по вашему посчитаем:

Код: plaintext
1.
2.
3.
Swap:  2031608k total,      240k used,  2031368k free,  6289540k cached
..
 447  root       15     0   299m  10m  1568  S   0 . 0    0 . 1     1 : 41 . 94  root     289m python
получается 299m VSIZE и 10M RES.
то есть у процесса python SWAP=289 МБ ?
а почему тогда общее использование swap всего 240кб ?
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769328
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже об этом подумал. Где-то глючит.
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769446
_р11р_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwind.
это не так. процесс может "промаппить" хоть весь диск не съев при этом памяти.
нужен какой-то другой способ поточнее.
Есть предложения? А как в AIX это посмотреть, там ведь таже проблема будет.
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769467
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_р11р_, в аикс может и не будет такой проблемы, там же другие утилиты.

В линуксе предлагаю слабать скриптик:
идем и перебираем по по всем процессам в /proc/<pid>/smap
допустим, самый большой блок в mysql у меня :
7f300115a000-7f30bc99b000 rw-p 00000000 00:00 0
Size: 3072260 kB
Rss: 1444820 kB
Pss: 1444820 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 16924 kB
Private_Dirty: 1427896 kB
Referenced: 1270488 kB
Swap: 457580 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB

видимо что засвопили 450 мб, что похоже на правду. Вероятнее всего это неиспользуемые ключи в кеше ключей myisam.
для только что перезапущенных процессов я проверил - там 0.
Готовую программу я не нашел, так что надо писать.


может быть прикладной смысл вопроса другой? ответ на какой вопросы вы пытаетесь получить таким образом?
вот программа atop в режиме 'm' выводит колонки MINFLT и MAJFLT .
там где MAJFLT большое - тот процесс проблемный и активно свопится.

Сейчас считается, что можно и вообще без свопа работать. но своп все равно включают для безопасности. на линуксе настраивают vm.swapiness=0.
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769710
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterТоже об этом подумал. Где-то глючит.
нет никакого глюка:

procResident Set Size: number of pages the process has in real memory, minus 3 for administrative purposes. This is just the pages which count towards text, data, or stack space. This does not include pages which have not been demand-loaded in, or which are swapped out .
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769734
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий_Кунин,

по идее это должно помочь гарантированно посчитать сколько какой процесс просвапил
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769830
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindчто похоже на правду
ага так и есть - то что в /proc/pid/smaps коррелирует с /proc/pid/pagemap:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
[web  115 ] ~ > ps -ef | awk {'print $2'} | xargs -n1 ./swapinfo.pl  2 > /dev/null
 4322 :  634880 
 4565 :  700416 
 14637 :  133197824 
 14646 :  0 
 14650 :  0 
 14664 :  0 
 15634 :  0 
 25240 :  954368 
[ 01 : 24  -  4 . 03 ]
[web  116 ] ~ > cat /proc/ 14637 /smaps | grep -i swap | awk {'print $2'} | xargs perl -le 'foreach $i (@ARGV) {$sum+=$i}; print $sum*1024'
 133197824 
[ 01 : 24  -  4 . 19 ]
[web  117 ] ~ >

swapinfo.pl - довольно тормозной парсер pagemap:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
#!/usr/bin/perl

#use warnings;
use strict;
use POSIX;

my ($pid) = @ARGV;
my $swapped =  0 ;
my $pagesize = POSIX::sysconf(&POSIX::_SC_PAGESIZE);

#open /proc/pid/maps
open my $maps, "/proc/$pid/maps" or die "maps: $!";

#open /proc/pid/pagemap
open my $pagemap, "/proc/$pid/pagemap" or die "pagemap: $!";
binmode $pagemap;

while (<$maps>) {
        m/(\w+)-(\w+) (\S+) (\S+) (\S+) (\d+)\s+(\S*)/;

        my $begin = int((hex $ 1 ) / $pagesize);
        my $end = int((hex $ 2 ) / $pagesize);

        for my $offset ($begin .. $end- 1 ){
                seek $pagemap, $offset* 8 ,  0  or die "seek: $!";
                read $pagemap, my $b,  8 ;
                my $n = unpack "q", $b;
                my $page_swapped = ! ! ($n & ( 1  <<  62 ));
                $swapped += $pagesize if $page_swapped
        }
}

print "$pid: $swapped\n";
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36769945
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, ну зачем вообще вам захотелось парсить бинарный pagemap, когда есть удобный текстовый smaps, да еще и с суммарной информацией.
...
Рейтинг: 0 / 0
Определить кто использует SWAP
    #36770266
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindну зачем вообще вам захотелось парсить бинарный pagemap, когда есть удобный текстовый smaps, да еще и с суммарной информацией.чтобы по крайней мере убедиться, что в smaps хранится правильная информация (разработчики почему-то забывают вовремя документацию писать - в актуальном man 5 proc информации про swap нет), более того из pagemap можно вытащить больше информации.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Определить кто использует SWAP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]