The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Оптимизация пересчета массива."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Оптимизация пересчета массива."
Сообщение от DerinI emailИскать по авторуВ закладки on 04-Июл-03, 18:48  (MSK)
   Добрый день.

   Не так давно я спрашивал в форуме о "правильной" нагрузке системы. На всякий случай напомню ситуацию. Есть небольшая провайдерская машина на Pentium 233 с 128 Мб. памяти под FreeBSD 4.7-Release-p10 Средняя ее загрузка колеблется около 0.99 Т. к. мой вышестоящий провайдер сказал, что это очень много, начал я борьбу за ее снижение.
  Мониторинг top-ом дал не очень много. В первые строки рейтинга часто вылетал Perl, но держался он там пару-тройку секунд. Мониторинг по systat дал больше - стало очевидно, что основной потребитель ресурсов - мой скрипт биллинга.  Я знаю, что он не есть чудом программистской мысли, т. к. работает просто и тупо. Скрипт просчитывает вывод last -s.
  Первая идея по снижению ресурсоемкости - прочитать все в массив и обсчитывать его. Какое то ускорение я получу. Но дело вообще то в том, что примерно четверть записей я должен отбросить по довольно сложному критерию. Он включает в себя многое - юзеров, работающих по определенной схеме, администрацию, входы с некоторых терминалов, ... Все это можно, конечно, определить читая строки массива и разбирая их. Но хотелось бы сделать все это максимально эффективно и красиво.
  Что подскажете ?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Оптимизация пересчета массива."
Сообщение от XMan Искать по авторуВ закладки on 04-Июл-03, 21:56  (MSK)
Как вариант - отправить нужный поток логов непосредственно на вход твоего скрипта. Типа, создается "named pipe" (в линухе команда "mkfifo"), с одной стороны в него заливает syslog (настройка  "|/путь/файл"), с другой стороны вешается скрипт. правда, для сохранения этого потока логов скрипт должен попутно всё прочитанное сваливать в обычный файл (в "/var/log/...").

Увеличение производительности "с места" - минимизациа количества условий.

PS. А вообще такие вещи лучше на C/C++ писать.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру