I'm looking for some advice on a somewhat non-standard hosting requirement and this appears to be one of the more knowledgeable forums on the subject.
I'm developing an embedded hardware product that will automatically upload a small amount of measurement data to a central server every minute or so. I've coded the main server pages in php and MySQL and am trying to get a feel for what level of service the system will require. Data transfer per connection will be fairly small - under 1K per transaction, but I am looking for a hosting package that can eventually handle up to 1000 devices - which is about 17 connections per second 24x7. This is in addition to standard page hits which shouldn't be too excessive - maybe 2k/day. Disk storage will be <10GB for all users and total transfers will likely be 50-100GB/month.
I'm looking at either a higher end shared account or a mid-level managed VPS. Though the data volume is small, all pages are fairly php intensive doing numerous database lookups and sometimes forwarding recalculated data off to other servers or sending automated emails. I am not sure, but believe memory will be the limiting factor - I remember reading somewhere that an average connection needs approximately 8MB of memory, so 20-32 connections will require 160-256MB of continuous server memory - which I'm worried is beyond the realm of even a higher end shared service (though they usually don't specify memory resources on shared accounts). Latency isn't a problem as long as requests are completed on average fast enough to keep up with the total system load.
Finally, this may be too general of a question, but what level of setup support does a managed VPS generally come with? I mostly just want some level of control of my php.ini file, which I know I'd have with a VPS, but does the hosting company generally do the initial LAMP install or is the user expected to? (as think I saw reference to in the VPS Tutorial forum). While I've done the setup before, I'd much rather pay my hosting company to deal with it - as well as maintaining the security patches. I'm hoping to find a suitable package in the $30-$50 / month range to deal with the initial product ramp-up to 1K users, after which I'll understand the actual system load better.
Normally if the VPS is managed, the support would be able to keep all of the provided software up to date, and would be able to configure/install applications/services for your VPS, as long as it doesn't stray too far from what comes on the VPS. Normally a VPS will come stock with a LAMP installed in your distro of choice.
Looking at the amount of memory you're needing, it's safe to say that a VPS with 512MB of dedicated ram should suffice.
I don't know of any managed VPS providers that fall within your monthly pricerange, most would be at about $60 / month for that amount of RAM (#1 cost of a VPS)
In my opinion a shared hosting environment wouldn't be suitable for your needs, a VPS would be. The amount of connections shouldn't be a problem, although it might be wise to ask the potential host whether they'd allow it for the plan you have in mind. In most cases there shouldn't be a problem, but it's always best to inform just in case.
As far as specs go, 384mb guaranteed RAM should probably be sufficient, so $30-$50/mo might be a bit on the low side if you are looking for a (quality) managed host. You should be able to get a price not too much higher than that though.
As for what management really comes with the VPS; this varies greatly for each host. Almost every host has a different definition for their level of management. In my opinion every host should very clearly advertise on their website what's included (and also what isn't). If the host's definition of management is too vague or something like "we'll do anything for you", then it's probably a good idea to look elsewhere. Alternatively you could also shoot an email to their sales department, but in my opinion this is one of the things that should be defined clearly on the website.
Thank you for the input. That's what I sort of figured - that I do need a VPS of some sort. On researching more what the modern control panels like cPanel and Plesk do for you, it seems a lot easier that it used to be to keep a server up to date and monitor it's status.
I still have no idea what my memory load will will be (8MB / connection is a pretty arbitrary guess), but I know the volume ramp up will be slow, so I'll probably start with a mid-level package in the $50 range that has 256MB of memory then see what the load is like with a couple hundred devices and move up as necessary (I may never sell a thousand of these things). I'll call and check with the hosts I've been researching, but I imagine it's pretty seamless with most providers to move up to larger package.
Yes, that's correct. Most VPS providers use OpenVZ or Virtouzzo, that allows them to modify those VPS parameters on the fly. I haven't used Xen yet (it's on my list) but I would assume that it would as well.