Помогите написать скрипт
bumbaram 19 апреля, 2010 - 11:53
Помогите пожалуйста написать скрипт(не шарю тут, а нужно). На машине стоит squid который переодически черезчур жирнеет, лезет юзать свап от чего все начинает тупить.
Нужно что то типа:
#!/bin/bash #кэш сквида на отдельном диске /dev/sda3 примонтирован в /squid #очень хорошо было бы знать возможно ли вытащить состояние swap #как это сделать я пока не знаю export swap_size = размер свапа if ( $swap_size != 0 ) then { /etc/init.d/squid stop #надо как то сделать паузу на мин 3 например, чтоб кальмар успел корректно #завершить все соединения rm -R /squid/var/cache/* #очищаем кэш, я пока умею только так... mv /squid/logs/access.log /home/proxy/logs/squid-access-$date rm -R /squid/logs/* reboot } done
теперь его нужно как то запускать где то раз в час. Это вроде cron может, только я не знаю как он работает...
ЗЫ еще один вопрос:
наблюдал пару раз такую картину. Свободной оперативы 10 Мб, но пишет используется свап 12 Кб. Проходит пару часов, свободной памяти например снова порядка 5-15 Мб а свапа уже 16 Кб. Допустим кто то забрал много памяти, начал юзать свап, но почему когда память освободилась свап не чистится?
»
- Для комментирования войдите или зарегистрируйтесь
50 17 * * * root
0 */1 * * * root /usr/local/bin/твой_скрипт
раз в сутки он будет запускать каждый час от пользователя root
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.
Спасибо. не помешала бы еще
Спасибо.
не помешала бы еще помощь по самому скрипту. Как напремер узнать состояние swap? :)
Возник еще один вопрос, немного другого плана, но не буду создавать отдельную тему.
У меня "жирнеет" система. Сразу после установки и настройки, система при загрузке забирала ~29 Мб оперативной памяти. Сейчас после перезагрузки ~40 Мб. При этом система просто юзается как прокси серв, на нее за это время ничего не устанавливалось вроде...куда деется память?
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
cat /proc/swaps
Так можно узнать его (swap) состояние.
что у вас за антиквариат?
что у вас за антиквариат? 64Мб total memory?
не занимайтесь ерундой...
почитайте внимательно squid.conf, если лень документацию читать.
что-то добрый я сегодня ....
.
squid.conf.default
достаточно+ маны по потребностям.
А вот с документацией (основной!) они (разработчики squid'а) начинают переходит на принципы wiki, что не есть хорошо...
:wq
--
Live free or die
Anarchist написал(а): leryc
Squid.conf default не дает кэш в 5 Гб, а мне это очень критично(!) сильно экономиться трафик. Система используется только как маршрутизатор. В среднем из 640 мб система забирает 630 и это меня устраивает, но переодически(бывает раз дней в пять) ссистема перегибает и лезет в свап.
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
Ну вообще 640 Мб, но какая
leryc : Ну вообще 640 Мб, но какая вам разница Вы все равно ничего не написали по теме
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
А Вы бы не хамили человеку.
А Вы бы не хамили человеку. Он написал по теме - стоит все таки изучить документацию, перед тем, как лепить костыли. Вполне возможно он, либо кто-то еще имеет позитивный/негативный опыт установки и настройки squid, и эта информация была нужна для более детального ответа. А теперь Вам просто могут не захотеть помогать.
А по сабжу - *nix системы известны тем, что "любят" память. И по моему опыту (squid я не ставил, но наслышан об этом "монстре"), стоит расширить память хотя бы до 1Gb (хотя все зависит от предполагаемой нагрузки. Но памяти много не бывает). А Ваши мегабайты, кот. ложаться в своп - это могут быть просто дисковые кеши, или еще что-то. Своп будет использоваться даже тогда, когда много свободной памяти, это нормально.
blow написал(а): Своп будет
И это нормально. Желающие могут подкрутить swappiness в sysctl
Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.
blow написал(а): А Вы бы не
у меня не было цели нахамить, человеку. Я просто ответил на пост в его же стиле.
Расширять память смысла нет, сам сквид не "упирается" в такое кол-во памяти, я просто его настраивал чтобы система не простаивала, а была загружена. 10 свободных мег, вполне достаточно для такой системы, больше то на ней ничего не делается...
Если использовать свап это нормально, тогда не понимаю почему оно загружается так хаотично. Например 3 дня top выдает что swap used 0.00 , а потом вдруг появляется какая то загрузка
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
ну, в общем-то, люди обычно
ну, в общем-то, люди обычно описывают свою конфигурацию (как правило), а в вашем случае не помешал бы еще и вывод #top - тогда, можеть быть, и написал бы чё по теме...
на одном из серваков у меня живет сквид + exim + dovecot (imap) + vpn + samba + проброс 4 портов для видеокамер + апач - и всё это "хозяйство" "съедает" от 350 до 400 МБ (i486, 512мб)
вот мне и интересно - чем же вы так загрузили свой "маршрутизатор"
2.
вы не путаете swap системы с кэшем сквида?
тупит swap - "лечите" диск и iotop в помощь
у меня в настройках сквида - 50Мб memory кеш , 50Гб disk кеш - и сквид ниразу не вышел за границы.
оба этих параметра очень гибко настраиваются от варианта "фиксировано" до варианта "от" и "до"
что-то добрый я сегодня ....
leryc написал(а): на одном
Все правильно. Из этих 350-400, предполагаю сквид сжирает ~150 Mb. Не так ли?
У меня 200 Мб memory кеш , 20 Гб disk кеш.
Как просили:
только он сейчас работает всего пару часов(свет вырубали, в доме ремонт) так что он еще не перешел в "рабочий" режим.
Если интересно могу выложить через сутки работы.
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
не так bumbaram
не так
сквид сидит в своих 50.
то что вы отвели 200мб - это вы зря, имхо
в этом кэше сквид хранит таблицы (хэш) дискового кэша - и так много памяти ему не надо, имхо,
но это уже - вопрос религии
конечно же top интересует в момент "затупа" вместе со списком приложений, которые top'ятся в тот момент
и давно бы уже выложили бы свой конфиг - может где чего намудрили ....
а то, что память (оперативная) плавает (съедается) - так не забывайте, что "система" еще, кроме всего прочего, сама занимается "аптимизацией" на предмет уменьшения операций i\o disk
а еще процессы иногда порождают children'ов (проверка вирусов в вашем случае м.б.)
что-то добрый я сегодня ....
leryc написал(а): то что вы
Конфиг пожалуйста, поставил кэш на диске поменьше(5Гб):
когда настраивал везде писали(в т.ч. http://squid.opennet.ru/config/QUICKSTART.shtml) что в конфиге писать количество памяти деленной на 3. У меня это полностью оправдалось. А выделять на него 50 Мб не рационально, еще бы 550 простаивали просто так...
Конфиг конечно можно ковырять, но мне все таки лучше скрипт, который проверяет используется свап или нет, и в противном случае чистит все.
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
не изобретайте
не изобретайте велосипед....
тут один...
и это - вы?
а тут - все остальные?
не является ли ваш сквид open-proxy для всего инета?
не принципиально, но почему-то после тестов возможных вариантов лично я остановился на варианте diskd
но это уже - вопрос религии...
я ничего не имею против уважаемого ресурса, но и моск включать надо... иногда...
1. разработчики - не дураки (имхо)
2. система сама разберется что делать со свободной памятью и ничё простаивать не будет, но может быть это избавит вас от тормозов
3. нежелание внимательно почитать документацию приводит к не(до)пониманию для чего служит cache_mem
по поводу вашего скрипта....
#/etc/init.d/squid restart хоть по крону, хоть как....
1. я не думаю, что у вас дома оптоволокно и вы выкачиваете 20Гб за сутки - кроньте в 0 часов и спите спокойно
2. логи не особо сказываются на "тупость" сквида и их можно настроить на ротацию более тонко, чем сделано у вас
3. чистить кэш не средствами сквида - не кашерно как-то....
4. по сути ваш скрипт - это тот же самый "restart"... только через... (сами знаете какое место)...
5. оптимизацией диск-кэша занимается сам сквид периодически в рамках отведенного ему места.. , но эту оптимизацию можно дополнительно "тюнинговать" через acl
иго-го
1.я так и не увидел что тупит сквид
2. могу предположить что вы - большая дырка в инет
3. могу предположить, что у вас динамический IP и затупы случаются когда провайдер вам переназначает айпишник (но тут уж не только сквид затупит)
4. не изобретайте велосипед, оставьте скрипт в покое и ищите ПРИЧИНУ!
что-то добрый я сегодня ....
bagas написал(а): 0 */1 * * *
А зачем /1?! Чтоб страшней было? :D
FYI: 0 минуты не рекомендуется использовать без острой необходимости - система всегда найдет чем заняться при смене часа ;), a для этих целей вполне годится
например...
bumbaram написал(а): На
Я тебе советую поколупать настройки сквида, там есть все что тебе нужно.
Свап юзается всегда по умолчанию это можно выключить, но я не советую) не зависимо от того сколько у тебя памяти. Так устроена система. Это не баг это фичер.