GeoIP: anyway to pull out lat/lon?

Igor Sysoev is at rambler-co.ru
Thu May 8 13:10:52 MSD 2008


On Thu, May 08, 2008 at 09:22:58AM +0100, Phillip B Oldham wrote:

> Ok, I've done part of the conversion, and here's what I get:
> 
> # wc -l geo.conf
> 3937100 geo.conf
> 
> Which is a little larger than the 141240 you're using. Will such a large 
> file slow nginx down?

As I understand it should not. nginx uses radix tree for geo, the first 6
or 7 bits are available in single TLB miss and up to 6/7 data cache misses.
If the most entries are /24 networks, then you will get 18/17 TLB and data
cache misses in worst case.

> Phillip B Oldham wrote:
> >I've not created the geo.conf file yet from the city data, but will do 
> >so today and do some checks.
> >
> >My main worry is that nginx is running on a virtual machine with only 
> >300MB of ram. So if I've got a file around the 100MB mark and I've one 
> >child, wouldn't that mean 200MB of memory is being taken up? Even 
> >100MB of memory is a lot just to get a lat/lon of the visitor.
> >
> >Igor Sysoev wrote:
> >>On Wed, May 07, 2008 at 03:59:06PM +0100, Phillip B Oldham wrote:
> >>
> >> 
> >>>Looking into that further, the data I've got for lat/lon at city 
> >>>level adds up to 120Mb. I could convert this to a geo.conf file 
> >>>using geo2nginx.pl, but what sort of impact would this have on nginx 
> >>>running? Would each child process take up 120Mb ram? Would nginx 
> >>>slow down for each request having to work through such a large data 
> >>>set?
> >>>    
> >>
> >>We are using 141240 lines geo file:
> >>
> >>wc geo.conf   141240  282480 2979471 geo.conf
> >>
> >>Could you show yours ? Also could you show pair lines of the file ?
> >>
> >>Performance should not depend on file size if you have enough memory.
> >>For geo map workers use the same memory inherited from parent on copy
> >>on write basis. But as there are no writes to this memory, it remain
> >>the same. Also duplicate values are stored only once.
> >>
> >>What does
> >>
> >>awk '{print $2}' geo.conf | sort | uniq | wc -l
> >>
> >>show ?
> >>
> >> 
> >>>Igor Sysoev wrote:
> >>>   
> >>>>On Tue, May 06, 2008 at 04:06:06PM +0100, Phillip B Oldham wrote:
> >>>>
> >>>> 
> >>>>     
> >>>>>I've just got the geo module working, and I've geo2nginx.pl'd the 
> >>>>>maxmind geolite country data which is working great. However, for 
> >>>>>our application I need to get more information (specifically a 
> >>>>>lat/lon) back         
> >>>>>from nginx to pass to PHP.
> >>>>     
> >>>>>Any way I can do this? Or is the geo module too simple for this task?
> >>>>>           
> >>>>The geo module simply maps ip to some string. You may use any strings.
> >>>>Probably you need to modify geo2nginx.pl to process lat/lon.
> >>>>      
> >>
> >>
> >>  
> >
> 
> -- 
> 
> *Phillip B Oldham*
> The Activity People
> phill at theactivitypeople.co.uk <mailto:phill at theactivitypeople.co.uk>
> 
> ------------------------------------------------------------------------
> 
> *Policies*
> 
> This e-mail and its attachments are intended for the above named 
> recipient(s) only and may be confidential. If they have come to you in 
> error, please reply to this e-mail and highlight the error. No action 
> should be taken regarding content, nor must you copy or show them to anyone.
> 
> This e-mail has been created in the knowledge that Internet e-mail is 
> not a 100% secure communications medium, and we have taken steps to 
> ensure that this e-mail and attachments are free from any virus. We must 
> advise that in keeping with good computing practice the recipient should 
> ensure they are completely virus free, and that you understand and 
> observe the lack of security when e-mailing us.
> 
> ------------------------------------------------------------------------

> begin:vcard
> fn:Phillip Oldham
> n:Oldham;Phillip
> org:The Activity People;Systems Development
> email;internet:phill at theactivitypeople.co.uk
> title:Chief Programmer
> tel;work:0870 162 4847
> x-mozilla-html:TRUE
> url:http://theactivitypeople.co.uk/
> version:2.1
> end:vcard
> 


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list