Hello Paolo,

I had played with many options in order to force the buffer to flush
into the database file or test other hypotheses, but that did not
help. But I admit I do not have a deep understanding of what every
option does.

In any case, I cleaned- up my config file and made sure I filter
nothing (see config below). I rechecked pmacctd using the memory
plugin and data is being gathered. Then I relaunched with the sqlite3
plugin. 'pmacct -s' still generate an error: the pipe file is not
created. And a large number of sqlite3 writer processes are created.

To be sure I have traffic, I copied a 2 GB file on the server while
logging. What I got is:
...
( in/sqlite3 ) *** Purging cache - START ***
( in/sqlite3 ) *** Purging cache - END (QN: 0, ET: 0) ***
WARN ( in/sqlite3 ): Maximum number of SQL writer processes reached (10).
( in/sqlite3 ) *** Purging cache - START ***
( in/sqlite3 ) *** Purging cache - END (QN: 0, ET: 0) ***
...

Which is not surprising given the writer processes never terminate. And also:

ERROR ( in/sqlite3 ): We are missing data.
If you see this message once in a while, discard it. Otherwise some
solutions follow:
- increase shared memory size, 'plugin_pipe_size'; now: '3669904'.
- increase buffer size, 'plugin_buffer_size'; now: '112'.
- increase system maximum socket size.

Which may be normal due to the low power of that little CPU. But I
wonder about the 'plugin_buffer_size`of 112: is seems small.

This makes me wonder if maybe there is a lack of memory somewhere. I
have 1.5 MB of RAM free, and about 1 MB of RAMdisk where the system
files are located (/var, /tmp etc...). Just in case use 'imt_path' to
put the pipe file on the hard disk (1 TB free...) but that did not
help. Maybe there are other files I should force there?

I wished there were a verbose mode on the sqlite3 plugin so we had a
better idea on what is happening. Is there a compilation option for
that?

Thanks,

JF

Config and log data follows:

!
debug: true
!syslog: kern
interface: egiga0
daemonize: false
promisc: false
plugins: sqlite3[in]
imt_path[in]: /vol1/collect.pipe
pidfile: /vol1/pmacct.pid
sql_db: /vol1/pmacct.db
aggregate: dst_host, src_host, dst_port, src_port
sql_table: acct
sql_table_version: 1
sql_refresh_time: 10
!

Log message on launch:

INFO ( in/sqlite3 ): 131070 bytes are available to address shared
memory segment; buffer size is 112 bytes.
INFO ( in/sqlite3 ): Trying to allocate a shared memory segment of
3669904 bytes.
OK ( default/core ): link type is: 1

_______________________________________________
pmacct-discussion mailing list
http://www.pmacct.net/#mailinglists

Reply via email to