Що таке shared memory в mac os x, linux sysadmin

Що таке Shared memory в Mac OS X?

Найбільш ефективно, колективна пам'ять використовується в багатопроцесорних / багатоядерних системах, клієнт-серверних додатках і ситема, в яких запущено безліч додатків одночасно. При малому розмірі shared memory. процесів і програм стають в чергу для отримання доступу до звільняє сегменту пам'яті, що з метою обміну даними, що може уповільнити загальну швидкодію або взагалі викликати помилку типу: «Can not create shared memory: system shmget».

У Mac OS X, настройки shared memory за замовчуванням встановлюються при завантаженні на рівні ядра, що можна подивитись на вашому Mac, за допомогою такої команди:

або для кожної змінної окремо
[Codesysctl kern.sysv.shmmax
kern.sysv.shmmax: 4194304 // що за замовчуванням становить 4 Mb
.
$ Sysctl kern.sysv.shmall
kern.sysv.shmall 1024 [/ code]

shmmax - максимальний розмір сегментів розділяється пам'яті

shmmin - мінімальний розмір сегмента розділяється пам'яті

shmmni - максимальна загальна кількість сегментів розділяється пам'яті

shmseg - максимальна кількість сегментів розділяється пам'яті (на одного користувача)

shmall - максимальна кількість пам'яті, що (в сторінках) і як правило, ділитися на 4096

На всіх Mac ці значення будуть однаковими, тому що Apple, природно, не знає, з яким обсягом пам'яті, в якому режимі і з яким навантаженням буде використовуватися комп'ютер, по-цьому і були прийняті якісь усереднені значення. Але цю ситуацію можна виправити і одержати деякий приріст в продуктивності. Чому я говорю так невизначено, вживаючи слово - деякий, та тому, що збільшення проізводітельнсті буде помітно на конкретному комп'ютері і саме з конкретними апаратними засобами (CPU, обсяг RAM, кількістю запущених додатків і т.д.), тобто не можна сказати, що производительнось виросте, наприклад, на 10% при таких-то параметрах для всіх.

Варіант 1 - shared memory 512 Mb

Варіант 2 - shared memory 1 Gb

можна скористатися моїми готовими варіантами або легко розрахувати свій варіант обсягу shared memory. конкретно для вашого комп'ютера.

Значення змінних можна задати вручну і автоматично при завантаженні комп'ютера. Для початку розглянемо ручної варіант установки значень, а підібравши оптимальні значення, можна встановити їх для автоматичною завантаження.

Ручний варіант (наприклад, встановлюємо розмір 512 Mb):

як ми бачимо, було 4 Mb, стало 512 Mb. Потрібно пам'ятати, що значення, задані вручну, будуть дійсні до наступної заміни або до перезавантаження комп'ютера.

Після того, як ви підібрали собі оптимальні значення, треба встановити їх для автоматичного завантаження. Для початку з'ясуємо наявність файлу налаштувань shared memory в системі, за допомогою такої команди (по-замовчуванню відсутня):

У порожньому вікні вводимо ті значення, які ви підібрали або, наприклад, з мого варіанту 1,2. Зберігаємо файл і при наступній перезавантаження системи, ми отримаємо вже нові значення shared memory.

Примітка: У файлі sysctl.conf не повинно бути нічого зайвого крім (наприклад):

Примітка: При таких маніпуляціях з ядром, потрібно бути дуже обережним! Всі помилки, які ви можете допустити з числовими значеннями - це будуть ваші помилки! Ну а насправді, потрібно бути просто уважним і акуратним :)

P.S. Щоб не придумував Стів Джобс, фантазія повинна бути яскравіше реальності.

Схожі пости

Post details