Всем привет , как на python можно получить -1) сколько ram на сервере .
2) сколько используется
Желательно пример функции или скрипта , сервер nix
Если линукс, то языконезависимое решение - читать данные из /proc
>Если линукс, то языконезависимое решение - читать данные из /procесли можно подробнее
Что именно вам подробней:
Как открывать файлы и читать их содержимое в переменные в ЯП вообще и в питоне в частности? Учебники и документация в помощь.
Как использовать строковые функции и регексы для вычленение из текста нужной инфы? Аналогично, по регексам рекомендую "Mastering regular expressions" от O'Reilly
Что такое proc вообще и с чем его едят? Тут можно стартовать с man proc, ну или по вашему вопросу с cat /proc/meminfo
>Что именно вам подробней:
>Как открывать файлы и читать их содержимое в переменные в ЯП вообще
>и в питоне в частности? Учебники и документация в помощь.
>Как использовать строковые функции и регексы для вычленение из текста нужной инфы?
>Аналогично, по регексам рекомендую "Mastering regular expressions" от O'Reilly
>Что такое proc вообще и с чем его едят? Тут можно стартовать
>с man proc, ну или по вашему вопросу с cat /proc/meminfo
>а на FreeBSD - где этот файл ?
>а на FreeBSD - где этот файл ?Медитируйте до просветления над двумя первыми словами из моего поста: "Если линукс".
>>а на FreeBSD - где этот файл ?
>
>Медитируйте до просветления над двумя первыми словами из моего поста: "Если линукс".
>подскажи пожилуйста , в папке /proc на FreeBSD там нет нечего !
Еще раз, FreeBSD это не linux и чтение /proc там не поможет. Совет изначально давался только для линукса, для других систем ищите другой метод. На крайний случай можно вызвать free или vmstat через system, но лучше без этого обойтись.
>Еще раз, FreeBSD это не linux и чтение /proc там не поможет.
>Совет изначально давался только для линукса, для других систем ищите другой
>метод. На крайний случай можно вызвать free или vmstat через system,
>но лучше без этого обойтись.а как еще можно , не знаеш ?
>а как еще можно , не знаеш ?Как-как - через sysctl ! Читать man 8 sysctl
Хотя судя по уровню вопросов - для тебя проще будет сделать так:
fetch http://www.cyberciti.biz/files/scripts/freebsd-memory.pl.txt
а потом:
perl freebsd-memory.pl.txtКод перловый - но понятный, под питон переписать - это тебе домашнее задание :)
Похоже никто здесь питон не любит :)
>Похоже никто здесь питон не любит :)Тут уже все сказали, что еще нужно?
>Похоже никто здесь питон не любит :)не, без обид, но программист на XXX, который не знает под что он пишет - это печально. Кроме того какую функцию в какой либе искать и как обработать массив программирование (оказывается!) включает ещё понимание "как и где это работает". Потому что когда господин программист делает 20 локов/анлоков файлов там где их вообще можно не делать или запросом выгребает во временную таблицу 80% 6-гиговой мускульной базы, он формально не ошибается, но фактически тяжелонагруженый сервак он бездарно кладёт. Это я к чему? Пиво в руки и к знакомому админу. Каждый вечер. До просветления. А днём читать-читать-читать, чтобы этому гаду пива досталось меньше :) Кстати прикола ради - зачем тебе в питоне количество памяти в тачке?
Вот любопытно сам ты читал код всех движков БД с которыми работал? А ядро для каждой ОС со всеми версиями тоже разбирал? Ну и спецификации на все железо само собой. Это чтобы знать "как и где это работает" :)
Работа с абстракциями и готовым кодом не менее важна для программиста, чем понимание "как и где это работает". К примеру для перла есть семейство модулей Sys::, которые предоставляют информацию о системе, в том числе Sys::Meminfo, который выдаст результат как на линуксе, так и на фре и винде. И программисту в этом случае не важно знать через какие механизмы данный результат получен, подключил модуль, сделал вызов и пошел дальше, вместо того, чтобы несколько часов/дней разбираться с "как и где это работает". Вполне возможно, что для питона тоже есть аналог Sys::Meminfo, вот только пока никто его не назвал.
> Вот любопытно сам ты читал код всех движков БД с которыми работал?По мере необходимости. Код движков, кстати, не единственный способ получение информации о принципах работы. Если речь о движках БД, то в статьях об оптимизации запросов часто описываются принципы работы планировщика, например.
> А ядро для каждой ОС со всеми версиями тоже разбирал? Ну и спецификации на все железо само собой. Это чтобы знать "как и где это работает" :)
Я понимаю, что довести до абсурда тезис оппонента - один из способов "победить" в дискуссии. Тем не менее об основных _принципах_ я осведомлен, некоторые механизмы знаю детальнее.
> Работа с абстракциями и готовым кодом не менее важна для программистаМы не об этом. Мы о том, что хороший программист знает цену выделения памяти, механизм свопинга, особенности компилятора/среды разработки, соотносит свои знания о цене обращения к диску, сокету, кэшу с предоставляемыми ОС/библиотекамии/средствами разработки/сторонними программами, и осмысленно принимает решение. Кто-то учитывает эти особенности самостоятельно, кто-то использует дополнительные инструменты. Кто-то пишет и пишет, но ухождение его программы в своп, резкое падение производительности по сети, негодная работа кэша, тормоза на переходе с тестовой базы "три записи" на продакшн и прочее - становится неожиданностью. Часто - для пользователя. Ну я как бы об этом, в первом приближении. Подменять общие принципы и некоторые особенности на тотальное понимание - это спекуляция.
> Вполне возможно, что для питона тоже есть аналог Sys::Meminfo
Я в несколько более широком смысле. Возможно, это личное, так сказать, "наболело". Если я не в тему - просто не обращайте внимание :)
Насчет использования памяти во FreeBSD можно применить вызов top или vmstat.