LINUX.ORG.RU

[не 12309][тормоза и лаги] swappiness сломался


0

3

Запускаю rsync с винта на винт. Памяти под кэш свободно процентов 25-30 из 1.2 Гб RAMы. Все процессы начинают лезть в своп (статус D рандомно на произвольных процессах), который быстренько разрастается до 500Мб занятого места, музыка на-на-начинает за-за-заикаться, GUI периодически встаёт раком.

Лезу смотреть swappines. swappines = 0. Делаю вот такие глаза: о_О. Переставляю swappines за 10. Тормоза исчезают.

Проходит 2 минуты. swappines по-прежнему 10. Тормоза возвращаются.

После того, как rsync отработал, запускаю для теста find /usr -type f | xargs cat > /dev/null. С ним тоже тормозит, хотя и не так сильно как при копировании.

Пробую разные значения swappines от 10 до 90. На всех тормоза примерно одинаковые. При 90, пожалуй, даже чуть меньше, что совсем уж противоречит здравому смыслу.

Что это было и куда копать?
Идеи? Советы? Рецепты?

Система Archlinux 32bit, ядро linux-pf-p4 3.0.2-1 (с BFS и BFQ)
Настройки подсистемы VM:
vm.overcommit_memory = 2
vm.overcommit_ratio = 90
vm.dirty_bytes = 2097152
vm.dirty_background_bytes = 2097152

[~] >> cat /etc/sysctl.d/vm_overcommit.conf 
vm.overcommit_memory = 2
vm.overcommit_ratio = 60
vm.dirty_background_bytes = 4194304
vm.dirty_bytes = 4194304
[~] >> cat /etc/sysctl.d/vm_swappiness.conf 
vm.swappiness = 10
[~] >> cat /proc/loadavg 
2.60 2.51 2.51 1/217 32337
[~] >> free -m
             total       used       free     shared    buffers     cached
Mem:          5985       5939         45          0         37       5413
-/+ buffers/cache:        488       5496
Swap:         6143          0       6143

Не наблюдаю никаких тормозов.

GotF ★★★★★
()
Ответ на: комментарий от GotF

Видимо всё дело в
vm.overcommit_memory = 2

Надо будет поиграться с этим параметром, хотя у меня тормозов и так нет, но зудит. :D

imul ★★★★★
()

Это линукс, детка.

Недавно пофиксили случайно инвертированный IPTABLES в одной из версий. Что ты хочешь, чтобы и за swappines так же неуклонно следили?

iZEN ★★★★★
()

У меня в sysctl.conf записано следующее:

vm.overcommit_memory = 2
vm.overcommit_ratio = 90
vm.dirty_bytes = 2097152
vm.dirty_background_bytes = 2097152
vm.swappiness=1
vm.vfs_cache_pressure=50
Арч x86_64. Ядро стандартное 3.0.4, без патчей от Коливаса. При выполнении теста find /usr -type f | xargs cat > /dev/null иногда глюки проскакивают, например, deadbeef один раз заикнулся, прокрутка в хромиуме иногда подлагивает, в остальном система ведет себя нормально.

ATIpro ★★
()

А что это «find /usr -type f | xargs cat > /dev/null» делает?

Запустил deadbeef на воспроизведение и эту херню — ничего не почувствовал. Звук нормальный.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Да ещё система из исходников пересобирается в фоне:

% top -P

last pid: 56918;  load averages:  1.07,  1.08,  1.02                up 0+01:44:01  15:52:54
151 processes: 2 running, 149 sleeping
CPU 0: 36.6% user,  0.0% nice,  9.0% system,  0.0% interrupt, 54.5% idle
CPU 1: 45.2% user,  0.0% nice,  7.4% system,  0.0% interrupt, 47.4% idle
CPU 2:  3.7% user,  0.0% nice,  3.0% system,  0.0% interrupt, 93.3% idle
CPU 3:  0.0% user,  0.0% nice,  1.5% system,  1.5% interrupt, 97.0% idle
Mem: 645M Active, 112M Inact, 3583M Wired, 63M Cache, 70M Buf, 3009M Free
Swap: 1024M Total, 1024M Free

  PID USERNAME      THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
 1633 root            1  44    0   698M   326M select  3   2:45  0.68% Xorg
39800 igor            6  44    0   231M 24560K pcmwrv  0   0:19  0.59% deadbeef
51807 igor            1  44    0  5832K  2000K zio->i  2   0:01  0.39% find
32092 igor            3  44    0  1429M   120M ucond   1   1:10  0.00% midori
 2037 igor           18  44    0   552M   146M ucond   2   0:44  0.00% thunderbird-bin
 1909 igor            2  44    0   232M 28732K piperd  0   0:27  0.00% Thunar
 1920 igor            1  44    0 42408K  5136K select  3   0:23  0.00% gam_server
 1124 root            1  44    0  8076K   904K select  3   0:12  0.00% moused
84137 igor           17  44    0  1649M   123M ucond   0   0:11  0.00% java
 1926 igor            1  44    0   108M 12536K select  2   0:09  0.00% xfce4-systemload-pl
 1907 igor            2  45    0   211M 21572K piperd  3   0:07  0.00% xfce4-panel
 1911 igor            2  44    0   212M 20236K piperd  0   0:05  0.00% xfdesktop
37801 igor            2  66    0   193M 22220K piperd  3   0:03  0.00% Terminal
 1927 igor            1  44    0   107M 12196K select  3   0:03  0.00% xfce4-netload-plugi
 1905 igor            1  44    0   115M 16012K select  2   0:03  0.00% xfwm4
 1796 haldaemon       2  44    0 57752K  6656K piperd  1   0:02  0.00% hald
 1928 igor            1  44    0   107M 12264K select  0   0:02  0.00% orageclock
 1802 root            1  44    0 42300K  4032K select  0   0:01  0.00% gam_server
 1576 root            1  44    0  6916K   916K select  2   0:01  0.00% powerd
 1886 igor            1  44    0 28792K  2836K select  0   0:01  0.00% xscreensaver
 1625 root            1  44    0 49312K  5900K wait    3   0:01  0.00% slim
 1833 root            1  44    0 11580K  1632K select  3   0:01  0.00% hald-addon-storage
45669 root            1  76    0 19588K 18572K wait    1   0:01  0.00% make
 1923 igor            1  44    0   193M 15708K select  1   0:01  0.00% xfce4-menu-plugin
 1485 root            8  44    0  5828K   996K rpcsvc  1   0:00  0.00% nfsd
 1997 igor            1  44    0 65252K  7864K select  2   0:00  0.00% gvfs-hal-volume-mon
 1925 igor            1  44    0   201M 17608K select  2   0:00  0.00% xfce4-mixer-plugin
 1897 igor            1  44    0   112M 10700K select  1   0:00  0.00% xfce4-session
 1895 igor            1  44    0  8132K  2104K select  2   0:00  0.00% dbus-daemon
 1569 root            1  44    0 11964K  1964K select  3   0:00  0.00% ntpd
 1924 igor            1  44    0   185M 13972K select  1   0:00  0.00% xfce4-screenshooter
 2055 igor            1  44    0 55596K  6708K select  2   0:00  0.00% gconfd-2
 1637 messagebus      1  44    0  8132K  2212K select  3   0:00  0.00% dbus-daemon
 1929 igor            1  44    0   111M 13488K select  2   0:00  0.00% xfce4-weather-plugi
 1899 igor            1  44    0 48328K  4884K select  1   0:00  0.00% xfconfd
 1783 root            1  44    0 21708K  1720K wait    0   0:00  0.00% login
56917 root            1  96    0 17168K 13852K CPU1    1   0:00  0.00% cc1
 1475 root            1  44    0  7048K  1492K select  3   0:00  0.00% mountd
51987 root            1  44    0 11428K  4280K CPU0    2   0:00  0.00% top
 1803 root            1  44    0 47236K  4092K select  3   0:00  0.00% hald-runner
 1798 root           18  44    0 59492K  6492K waitvt  2   0:00  0.00% console-kit-daemon
 1800 root            2  44    0 59028K  5788K select  3   0:00  0.00% polkitd
49569 root            1  76    0  8348K  1592K wait    0   0:00  0.00% sh
 1371 root            1  44    0  7048K  1220K select  2   0:00  0.00% syslogd
 1655 root            1  60    0 17856K  2784K kqread  3   0:00  0.00% cupsd
 1922 igor            1  44    0 57664K  5436K select  2   0:00  0.00% gvfsd

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

> А что это «find /usr -type f | xargs cat > /dev/null» делает?

Как я понимаю, читает содержимое всех файлов из /usr в /dev/null

Запустил deadbeef на воспроизведение и эту херню — ничего не почувствовал. Звук нормальный.

У меня deadbeef делает еще samplerate_best ресемплинг, что пожирает где-то 25% цпу (половину одного ядра).

ATIpro ★★
()

>При 90, пожалуй, даже чуть меньше, что совсем уж противоречит здравому смыслу.

Не противоречит. Я даже видел рекомендации ставить 100, сам не пробовал правда

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.