Thread: [Proxy]How many co-current users can be supported by 1GiG Port?

Join Date
Jun 2008
Posts
128

[Proxy]How many co-current users can be supported by 1GiG Port?

Hi everyone,

I want to run a download proxy server and wonder how many users I can support per server.

The connection will be a 1000mbit dedicated port from 100TB.

Since it'll be a proxy server, the bandwidth is split to incoming and outgoing. As result, the outbound bandwidth will be halved to 500mbit.

How many co-current users can I support with 500mbit during peak period at the following speed per user?

1. 1500kb/s
2. 1000kb/s
3. 750kb/s
4. 500kb/s

2. Newbie
Join Date
Oct 2010
Posts
29
First off I don't really understand what you mean by "download proxy", will you be running a proxy software package such as squid?

1Gbps=1,000Mbps=1,000,000Kbps

The math to calculate how many users will eat up that bandwidth at any given hard limit is fairly simple. There are of course other factors involved which could impact this such as RAM, hard drive and CPU.

3. Web Hosting Master
Join Date
Feb 2003
Location
Kuala Lumpur, Malaysia
Posts
4,974
funkywizard may be able to share a lot of experience.

4. Web Hosting Master
Join Date
Apr 2009
Posts
1,320
People have DSL speeds with up to 10mbps and maybe more. 1000/10 = 100 users if you calculate at 10mbps.

5. Corporate Member
Join Date
Jan 2005
Posts
9,871
the bandwidth 1gbit port is full duplex, it's not going to be halved to 500 meg unless you have some other bottleneck such as cpu, disk, or network card / irq.

I've got nginx running as a proxy for video doing 400 megabit full duplex on 100tb's pentium D server. With more cpu, could probably do more than that, but 400 meg during peak seems to be about right to stay just a bit under 100tb / mo so there's not much reason for me to have more than that much speed.

If you want to know how much bandwidth you need to give X number of users Y speed, that's simple math, I don't think you'd have much problem with. More importantly, is if the network will support your target connection speed to your target users. The 100tb network is generally "ok", I would think 500-1000 kilobit / second per thread is a reasonable target generally; fine for SD streaming video, and you might get better performance than that to US visitors, but I wouldn't bet money on it. If you're offering a free downloading service, the speeds should be adequate, but any paid / premium users, I would put them on a better network like Quadranet's.

Join Date
Jun 2008
Posts
128
Thanks.

Join Date
Jun 2008
Posts
128
Originally Posted by funkywizard
the bandwidth 1gbit port is full duplex, it's not going to be halved to 500 meg unless you have some other bottleneck such as cpu, disk, or network card / irq.

I've got nginx running as a proxy for video doing 400 megabit full duplex on 100tb's pentium D server. With more cpu, could probably do more than that, but 400 meg during peak seems to be about right to stay just a bit under 100tb / mo so there's not much reason for me to have more than that much speed.

If you want to know how much bandwidth you need to give X number of users Y speed, that's simple math, I don't think you'd have much problem with. More importantly, is if the network will support your target connection speed to your target users. The 100tb network is generally "ok", I would think 500-1000 kilobit / second per thread is a reasonable target generally; fine for SD streaming video, and you might get better performance than that to US visitors, but I wouldn't bet money on it. If you're offering a free downloading service, the speeds should be adequate, but any paid / premium users, I would put them on a better network like Quadranet's.
Thanks! My main concern is the practical users limit per server if the speed is capped at 1000kb/s to each. I understand the theoretical limit is 100 users but the practical limit could be higher given the download patterns of users.

I'm very new to this so I don't know how to estimate the realistic number of users a server can support.

I know it's hard to answer without knowing the actual usage but if you were to run a server with 1000mbit port and 1000kb/s cap per user, how users would you limit per server?

Thanks again.

8. Corporate Member
Join Date
Jan 2005
Posts
9,871
Originally Posted by nickia
Thanks.

Squid is unlikely to scale to that level of performance, especially if you enable caching. It's going to fall over dead with massive cpu use, and if you enable caching, then the disk i/o will kill you as well. Nginx will scale fine to several thousand simultaneous connections and 500 meg full duplex without much issue.

For file sharing sites, free users don't need great speeds. Do you really expect to get 1 megabyte per second from a free service? I know file sites that just go and get whatever bandwidth they can afford and run it 100% 24/7. Speeds suck during peak hours, suck a bit less during off peak, but always using all the bandwidth. If your users aren't paying you, that's the only way to make it work. Besides which, if a given user is capped to, say, 500mb / day, then they can hardly be downloading at 1 meg per second for more than 10 minutes a day anyway, so you don't have to support every user of the site simultaneously connected all day.

For paying users, you can afford to buy whatever amount of b/w you need, it's really not an issue. Charging \$10 / month? Even if each user downloaded 1TB / mo, that's 100 customers per 100tb.com server if you really run it all-out, giving you \$1000 / mo in revenues for a server as cheap as \$133 / mo. Not really a problem. I would expect your paying users would be using 10-20gb / mo on average, so even a few paying users can subsidize a huge number of leechers. Even a 1% paying user conversion rate and you're printing money basically.

9. Corporate Member
Join Date
Jan 2005
Posts
9,871
Originally Posted by nickia
Thanks! My main concern is the practical users limit per server if the speed is capped at 1000kb/s to each. I understand the theoretical limit is 100 users but the practical limit could be higher given the download behaviour of users.

I'm very new to this so I don't know how to estimate the realistic number of users a server can support.

Thanks again.
Are we talking kilobytes or kilobits? The 100tb.com network is *not* fast enough to transfer files at 1000 kilobytes per second on a single threaded connection. 100-300KB/s per connection is a more reasonable target. If you want to do better than that, you need to pay more for a better network.

In any case, if they're free users, even 50KB/s per user is perfectly acceptable. People will wait for free downloads. 50KB is 400 kilobit, and 400 megabit / second gets you 1000 such connections simultaneously.

Join Date
Jun 2008
Posts
128
Originally Posted by funkywizard
Are we talking kilobytes or kilobits? The 100tb.com network is *not* fast enough to transfer files at 1000 kilobytes per second on a single threaded connection. 100-300KB/s per connection is a more reasonable target. If you want to do better than that, you need to pay more for a better network.

In any case, if they're free users, even 50KB/s per user is perfectly acceptable. People will wait for free downloads. 50KB is 400 kilobit, and 400 megabit / second gets you 1000 such connections simultaneously.
Hi funkywizard,

It'll be a pay service so I'm trying to see if it can support my pricing. Thanks for the tip about nginx. I will look into that.

About single thread speed at 100TB.com... It's really a bummer that it will go only up to 100-300KB/s per thread. I was referring to 1000 kiloBytes per second.

11. Junior Guru
Join Date
May 2010
Location
Houston, Texas
Posts
240
Originally Posted by funkywizard
Are we talking kilobytes or kilobits? The 100tb.com network is *not* fast enough to transfer files at 1000 kilobytes per second on a single threaded connection. 100-300KB/s per connection is a more reasonable target. If you want to do better than that, you need to pay more for a better network.
Isn't 100TB on SoftLayer's Network? I thought they had a pretty good network.

Join Date
Jun 2008
Posts
128
BTW, does nginx support user-authentication? I want my proxy user to authenticate themselves before they are granted access. I know Squid has this feature but not sure if nginx does...

13. Corporate Member
Join Date
Jan 2005
Posts
9,871
Originally Posted by nickia
Hi funkywizard,

It'll be a pay service so I'm trying to see if it can support my pricing. Thanks for the tip about nginx. I will look into that.

About single thread speed at 100TB.com... It's really a bummer that it will go only up to 100-300KB/s per thread. I was referring to 1000 kiloBytes per second.
If it's strictly a for-pay service, then I would look elsewhere than 100tb if you want sufficient performance to keep paying users happy. Quadranet was able to max any connection I threw at it, even from the UK even though the servers were in LA. An average user is unlikely to download massive amounts of data, so I would budget for 50gb / mo or less usage per customer. Even at prices 10x what 100tb charges, if you're charging \$5 / mo or more, you should have no trouble on margins. Even 50gb / mo per user, at 3 cents / gb on b/w, comes out to \$1.50 / mo in costs, or about 20x what it would cost at 100tb if you run a pentium D to 100% b/w utilization

Isn't 100TB on SoftLayer's Network? I thought they had a pretty good network.
They sure advertise that, don't they? I haven't used softlayer directly so I can't say if they're better than 100tb, but I can say that 100tb is a "budget" network, make no mistake about that. Poor overseas speeds, adequate but unimpressive US speeds, even over short distances and to networks that use the same carriers as them. You can push the full amount of b/w you're paying for if you have enough connections, but single threaded performance clearly indicates an oversold budget network. Can't fault the performance for the price you're paying, and it's on par with other bottom-dollar networks I've used, but it's nothing to get excited about.

14. Corporate Member
Join Date
Jan 2005
Posts
9,871
Originally Posted by nickia
BTW, does nginx support user-authentication? I want my proxy user to authenticate themselves before they are granted access. I know Squid has this feature but not sure if nginx does...
Depends how you set things up. I'm not sure if you can use nginx as a forward proxy, as in, a user sets their browser proxy settings to point to nginx. I use it as a reverse proxy in front of an apache server.

Not sure exactly how your service works, but if it were a typical file sharing site instead of proxying to some other file sharing sites, what you might do is have nginx in front of apache in front of php, a php script does the authentication, and if the user passes the auth, then php sends nginx a header telling nginx to send the user a particular file that the user wanted. Nginx then handles the rest of the connection and php / apache is freed up to accept another connection. The file nginx is informed to send to the user doesn't have to be on the server, it can be an arbitrary url, and this is how I use it to proxy video sites. Php script figures out what video the user wants, figures out what url it's actually located at, figures out if the request is legitimate, and if it all checks out, tells nginx to proxy the real video url off to the user.

15. Junior Guru Wannabe
Join Date
Jul 2005
Location
UK
Posts
62
Originally Posted by IntelHost
Isn't 100TB on SoftLayer's Network? I thought they had a pretty good network.

They do in the US, I have one of their basic servers in Dallas and it easily does a 1.0-1.2 MB/s download on an AT&T connection in LA.

But if you connect to their network from Europe 200-300 KB/s is pretty common which is a little strange.

16. Web Hosting Master
Join Date
Jun 2006
Location
NYC
Posts
1,446
Originally Posted by neilmcaliece
They do in the US, I have one of their basic servers in Dallas and it easily does a 1.0-1.2 MB/s download on an AT&T connection in LA.

But if you connect to their network from Europe 200-300 KB/s is pretty common which is a little strange.
*shrug*

We have several servers still in Softlayer and all with 1Gbps or 10Gbps ports. We are lucky to ever see consistent 1.5-3MB/s

It's pretty shotty and specifically due to the routing. They have a mess under the hood now days.

17. Disabled
Join Date
Mar 2011
Location
Graz, Austria
Posts
298
Most likely Softlayer routes 100TB other than normal customers, this is easily possible for specific IP ranges.

Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•