Сокет и область подкачки

Измените строку 'RewriteRule' на:

RewriteRule !\.(jpg|css|js|gif|png)$ index.php
0
задан 16 December 2011 в 09:59
3 ответа

Недостаточно памяти, но используется мало подкачки? Я предполагаю, что это случай linuxatemyram.com , как и в этот вопрос .

После быстрого поиска в Интернете выяснилось, что ядро ​​Linux не выполняет подкачку (подкачку) своей собственной памяти на все, включая дескрипторы сокетов.

2
ответ дан 4 December 2019 в 11:19

Сокет не использует много памяти: есть только ссылка на структуру ядра и пару буферов в пользовательском пространстве. Ядро должно поддерживать окно передачи и приема для сетевых сокетов и небольшой буфер для сокетов файловой системы. Но существование сокета подразумевает какой-то процесс взаимодействия с кодом и данными. Но вы не сказали, что это за соединения.

Это может быть место для решения этой проблемы в зависимости от того, в каком состоянии находятся сокеты, что они делают и какие процессы открывают сокеты, но при отсутствии намного большего информация, посоветовать невозможно.

2
ответ дан 4 December 2019 в 11:19

Что касается подкачки ядра в собственной памяти: я бы пошел с ответом Кубанчика здесь. Что касается общего вопроса о нехватке памяти: обязательно запустите команду 'free' и посмотрите строку '- / + buffers / cache', которая сообщит вам более точную информацию о фактической используемой / свободной памяти.

Что касается использование сокета. При большой нагрузке (в зависимости от вашего приложения, конечно) он может съесть довольно много вашей памяти. Вот как вы можете рассчитать текущее использование памяти для ваших сокетов:

getconf PAGESIZE

Он, вероятно, скажет вам «4096», что составляет 4 Кбайт. Теперь давайте узнаем, сколько страниц используется для текущих сокетов:

cat /proc/net/sockstat

Вы получите информацию о вашем текущем использовании сокетов в системе, примерно так (это при большой нагрузке):

sockets: used 250755
TCP: inuse 5 orphan 0 tw 0 alloc 250873 mem 895545
UDP: inuse 4 mem 2
UDPLITE: inuse 0
RAW: inuse 0
FRAG: inuse 0 memory 0

Нас интересует "mem 895545" "который сообщает нам количество использованных страниц. Итак, чтобы рассчитать использование памяти для сокетов на коробке, мы умножаем размер страницы на это значение mem:

4096 * 895545 ~= 3.5Gb
2
ответ дан 4 December 2019 в 11:19

Теги

Похожие вопросы