Search This Blog

Saturday, March 17, 2012

Vim

Vim rocks and mydebianblogspot too


~/.vimrc

syntax on
set background=dark

set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4

set ruler
set paste
set showcmd
set list
set listchars=tab:>-,trail:.,extends:>,precedes:<

set laststatus=2
set statusline=%F%m%r%h%w\ [%4l,%3v][%3p%%]\ [enc=%{&encoding}]\ [%{strftime(\"%d.%m.%y\ %H:%M\")}]
hi StatusLine ctermfg=black ctermbg=red

autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o

if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

vmap <A-v> <C-v>
 

Friday, March 16, 2012

Why does Asterisk consume 100% CPU?

I don’t know :) (с)

    С помощью ps и pstack можно попытаться выяснить почему это происходит. На самом деле это может сработать с любой программой, не только с Asterisk-ом.
    Нам понадобится утилита pstack, утилита для отслеживание системных вызовов и отображение стека процесса, если ее в системе нет, нужно установить.
    Проверяем какой из тредов Asterisk-а взбесился.
        # ps -LlFm -p `pidof asterisk`
    В таблице в колонке “С” в % отображается нагрузка на процессор от каждого треда, LWP (LWP - light weight process number) колонка это id тредов. Теперь нам известно кто и сколько процессора кушает, теперь надо понять что он делает.
        # pstack `pidof asterisk` > /tmp/asterisk.stack.txt
    pstack запишет состояние стека процесса Asterisk-а в файл. После в файле можно найти интересующий нас тред по LWP.
    Возможно там будут подсказки для решения проблемы или хотя бы дополнительная информация для отправки на issues.asterisk.org

source