OCZ Apex Drive

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

jedisolo

Junior Member
Feb 1, 2009
7
0
0
Originally posted by: ky
Originally posted by: jedisolo
I haven't experienced any stuttering on the G.skill Titan 256 GB that I have running in my Thinkpad T400.

Did you need to tweak the OS settings at all? Or did it pretty much "just work"?



I didn't have to tweak anything in the OS. I just put the drive in and did a fresh install of Windows XP.
 

coolVariable

Diamond Member
May 18, 2001
3,724
0
76
I find it curious that company after company, reviewer after reviewer, website after website can screw up these SSD tests.
How #$%^#%$ hard is it to run the same (or other random write) tests?
If you google SSD pretty much 50% of your results will be forums and websites discussing stuttering and other issues.
Are all these reviewrs bought?!
 

Idontcare

Elite Member
Oct 10, 1999
21,118
59
91
Originally posted by: coolVariable
I find it curious that company after company, reviewer after reviewer, website after website can screw up these SSD tests.
How #$%^#%$ hard is it to run the same (or other random write) tests?
If you google SSD pretty much 50% of your results will be forums and websites discussing stuttering and other issues.
Are all these reviewrs bought?!

It certainly is a consistent theme. SSD's have one Achilles heel at the moment (technical performance speaking, not talking cost or business model) and that is the ability to handle small file random writes.

Crystalmarkdisk provides a free and easy to use tool for assessing this metric, and the 4KB random writes appears to be a decent proxy for capturing and communicating the differences between these SSD's in the sense that the consumer's experience with the drives are impacted by this metric.

So you ask a great question. Why is that reviewer after reviewer seem to fail in assessing and characterizing a given SSD's performance for this known Achilles heel of the technology despite having easy access to the tools needed to perform such characterization? Something is rotten in Denmark.
 

tuan209

Member
May 9, 2004
107
0
76
what are some of the tests you guys recommend? I just bought the corsair s128 and would like to thoroughly test it out.

here are my results from crystal disk mark:

--------------------------------------------------
CrystalDiskMark 2.2 (C) 2007-2008 hiyohiyo
Crystal Dew World : http://crystalmark.info/
--------------------------------------------------

Sequential Read : 99.517 MB/s
Sequential Write : 74.409 MB/s
Random Read 512KB : 95.928 MB/s
Random Write 512KB : 61.410 MB/s
Random Read 4KB : 14.719 MB/s
Random Write 4KB : 4.676 MB/s

Test Size : 100 MB
Date : 2009/02/09 18:19:40

 

Idontcare

Elite Member
Oct 10, 1999
21,118
59
91
Originally posted by: tuan209
what are some of the tests you guys recommend? I just bought the corsair s128 and would like to thoroughly test it out.

here are my results from crystal disk mark:

Random Write 4KB : 4.676 MB/s

Bingo. That's it right there.

Not good at <5MB/s random write.

It's not bad by any means, <1MB/s is bad, but it needs to be >20MB/s to be considered (IMO) likely to be stutter free inasmuch as an Intel SSD is considered to be stutter free.

See: http://forums.anandtech.com/me...256116&highlight_key=y

As you can see in that thread, X25-M owners report seeing ~40MB/s random writes at 4KB.

Here is IntelUser2000's screenshot: http://img53.imageshack.us/my.php?image=x25mcdmis3.jpg

pm reported similar findings.
 

tuan209

Member
May 9, 2004
107
0
76
Does it matter that I running it on a laptop?

As far as I know, the corsair is basically a Samsung SSD with the samsung controller. These things are suppose to be stutter free.

 

datwater

Senior member
Jan 29, 2004
710
0
0
I wound up ordering an Apex after all. Just a single one for now. I'll bench and post once it arrives, as requested.
 

FireChicken

Senior member
Jun 6, 2006
620
0
0
Originally posted by: Idontcare
Originally posted by: tuan209
what are some of the tests you guys recommend? I just bought the corsair s128 and would like to thoroughly test it out.

here are my results from crystal disk mark:

Random Write 4KB : 4.676 MB/s

Bingo. That's it right there.

Not good at <5MB/s random write.

It's not bad by any means, <1MB/s is bad, but it needs to be >20MB/s to be considered (IMO) likely to be stutter free inasmuch as an Intel SSD is considered to be stutter free.

See: http://forums.anandtech.com/me...256116&highlight_key=y

As you can see in that thread, X25-M owners report seeing ~40MB/s random writes at 4KB.

Here is IntelUser2000's screenshot: http://img53.imageshack.us/my.php?image=x25mcdmis3.jpg

pm reported similar findings.

Not sure what this means, but according to this review (scroll to the bottom of the page) the intel drive is the ONLY drive that handles the small random writes well. even the velociraptors seem to have trouble with them
 

Idontcare

Elite Member
Oct 10, 1999
21,118
59
91
Originally posted by: FireChicken
Originally posted by: Idontcare
Originally posted by: tuan209
what are some of the tests you guys recommend? I just bought the corsair s128 and would like to thoroughly test it out.

here are my results from crystal disk mark:

Random Write 4KB : 4.676 MB/s

Bingo. That's it right there.

Not good at <5MB/s random write.

It's not bad by any means, <1MB/s is bad, but it needs to be >20MB/s to be considered (IMO) likely to be stutter free inasmuch as an Intel SSD is considered to be stutter free.

See: http://forums.anandtech.com/me...256116&highlight_key=y

As you can see in that thread, X25-M owners report seeing ~40MB/s random writes at 4KB.

Here is IntelUser2000's screenshot: http://img53.imageshack.us/my.php?image=x25mcdmis3.jpg

pm reported similar findings.

Not sure what this means, but according to this review (scroll to the bottom of the page) the intel drive is the ONLY drive that handles the small random writes well. even the velociraptors seem to have trouble with them

Well you have to consider what causes stutter. Stutter is induced by overloading the internal buffers when attempting to write small files to random address locations in the media (be it SSD or spindle drive).

http://www.anandtech.com/cpuch...howdoc.aspx?i=3403&p=9

On SSD's with MLC chips the way the controller handles the cache buffer being entirely filled with write requests is it times out on any addressing any further additional requests (be they read or large file write, etc) until the myriad of small files are written.

Spindle-drives for whatever reason handle this situation more gracefully, so while you get lower 4KB random writes with spindle drives (BTW my 500GB 7200rpm Hitachi scores ~1.6MB/s) you do not get stutter.

What this particular benchmark is doing for us is giving us information as to how well a given drive handles small file random writes. The thinking is that the better it handles them (the higher the bandwidth results) the less likely it is that the drive will ever end up in a situation where the internal cache is overloaded and the drive starts to stutter.

So basically higher is better, all else being equal. So if you have the choice between an Apex drive with say 5 MB/s of 4KB random write performance versus a G.Skill SSD which has 3 MB/s of 4KB random write performance then going with the OCZ in this example would increase your odds of not experiencing stutter with the SSD in your rig.

It's just a proxy for gauging likelihood of stutter. Intel drives with 40MB/s bandwidth at 4KB random writes appears to be the holy-grail. We want cheaper drives from OCZ, Samsung, Corsair, etc to get their 4KB/s random write performance up to this level and we should feel reasonably confident at that point that there won't be any more stuttering to be concerned about.
 

coolVariable

Diamond Member
May 18, 2001
3,724
0
76
Originally posted by: Idontcare
Well you have to consider what causes stutter. Stutter is induced by overloading the internal buffers when attempting to write small files to random address locations in the media (be it SSD or spindle drive).

http://www.anandtech.com/cpuch...howdoc.aspx?i=3403&p=9

On SSD's with MLC chips the way the controller handles the cache buffer being entirely filled with write requests is it times out on any addressing any further additional requests (be they read or large file write, etc) until the myriad of small files are written.

Spindle-drives for whatever reason handle this situation more gracefully, so while you get lower 4KB random writes with spindle drives (BTW my 500GB 7200rpm Hitachi scores ~1.6MB/s) you do not get stutter.

What this particular benchmark is doing for us is giving us information as to how well a given drive handles small file random writes. The thinking is that the better it handles them (the higher the bandwidth results) the less likely it is that the drive will ever end up in a situation where the internal cache is overloaded and the drive starts to stutter.

So basically higher is better, all else being equal. So if you have the choice between an Apex drive with say 5 MB/s of 4KB random write performance versus a G.Skill SSD which has 3 MB/s of 4KB random write performance then going with the OCZ in this example would increase your odds of not experiencing stutter with the SSD in your rig.

It's just a proxy for gauging likelihood of stutter. Intel drives with 40MB/s bandwidth at 4KB random writes appears to be the holy-grail. We want cheaper drives from OCZ, Samsung, Corsair, etc to get their 4KB/s random write performance up to this level and we should feel reasonably confident at that point that there won't be any more stuttering to be concerned about.

I would say you are 90% there to a correct answer.
The difference being that intel drives and Samsung drives don't choke or time out on random writes. Only the jmicron controllers seem to be doing that (intel and samsung found a way around the issue).
OCZ is in fact one of the worst offenders concerning random writes and most people would be happy to get 5MB/s or even 3MB/s out of them.
The g.skill titan and the apex try to circumvent the issue by having 2 controllers ... giving you more random writes per second but still not addressing the issue ... which is why people still see stuttering, if somewhat less.
 

Idontcare

Elite Member
Oct 10, 1999
21,118
59
91
Originally posted by: coolVariable
Originally posted by: Idontcare
Well you have to consider what causes stutter. Stutter is induced by overloading the internal buffers when attempting to write small files to random address locations in the media (be it SSD or spindle drive).

http://www.anandtech.com/cpuch...howdoc.aspx?i=3403&p=9

On SSD's with MLC chips the way the controller handles the cache buffer being entirely filled with write requests is it times out on any addressing any further additional requests (be they read or large file write, etc) until the myriad of small files are written.

Spindle-drives for whatever reason handle this situation more gracefully, so while you get lower 4KB random writes with spindle drives (BTW my 500GB 7200rpm Hitachi scores ~1.6MB/s) you do not get stutter.

What this particular benchmark is doing for us is giving us information as to how well a given drive handles small file random writes. The thinking is that the better it handles them (the higher the bandwidth results) the less likely it is that the drive will ever end up in a situation where the internal cache is overloaded and the drive starts to stutter.

So basically higher is better, all else being equal. So if you have the choice between an Apex drive with say 5 MB/s of 4KB random write performance versus a G.Skill SSD which has 3 MB/s of 4KB random write performance then going with the OCZ in this example would increase your odds of not experiencing stutter with the SSD in your rig.

It's just a proxy for gauging likelihood of stutter. Intel drives with 40MB/s bandwidth at 4KB random writes appears to be the holy-grail. We want cheaper drives from OCZ, Samsung, Corsair, etc to get their 4KB/s random write performance up to this level and we should feel reasonably confident at that point that there won't be any more stuttering to be concerned about.

I would say you are 90% there to a correct answer.
The difference being that intel drives and Samsung drives don't choke or time out on random writes. Only the jmicron controllers seem to be doing that (intel and samsung found a way around the issue).
OCZ is in fact one of the worst offenders concerning random writes and most people would be happy to get 5MB/s or even 3MB/s out of them.
The g.skill titan and the apex try to circumvent the issue by having 2 controllers ... giving you more random writes per second but still not addressing the issue ... which is why people still see stuttering, if somewhat less.

If stuttering is caused by a cache buffer getting filled then you have two ways to address it - increase the size of the cache buffer (this is what raid cards with dedicated cache effectively accomplish) or increase the aggregate write speed to the media so the flush rate on the cache is likely to be high enough to avoid cases where the cache is overloaded.

I am arguing that measuring 4KB random write bandwidth is giving us a gauge for how fast the system is handling flushing the cache. Higher 4KB random writes means the cache is being emptied at a faster rate, meaning for a given usage environment the user is less likely to overwhelm the cache on-board.

To my knowledge this is not a specific issue of the Jmicron controller, it is a specific issue of the underlying storage medium. MLC flash. What Intel and Samsung have done is increase the cache size (less likely to become fully filled) and increased the intelligence of the algorithms that handle preparing MLC cells for writes in advance (staging hidden capacity to be used, etc).

So I still believe that when it comes to gauging the propensity for a given SSD to induce stuttering, 4KB random write bandwidth is precisely the metric we want the drive to be evaluated with.

Based on this metric, and user reports thus far, it would appear that common desktop environments do not generate a small-file random write sequence that will overload the buffer on Intel's and Samsung's SSDs when the buffer flush rate (bandwidth of writing to the media) are taken into account. This minimum necessary bandwidth appears to be somewhere between 25MB/s and 40MB/s as determined by the 4KB/s random write benchmark of the crystaldiskmark program.

I have no doubt that a person could code a program that generated such a volume of small file random write sequences that even Intel's and Samsung's SSD buffers would be overwhelmed and stuttering would transpire unless the small file random write bandwidth were higher, say 60MB/s for example. But it would appear at present time the typical apps that desktop users are using do not cross this threshold, as such Intel and Samsung SSD's appear to be incapable of stuttering. There is a difference between not being able to stutter (as in physical/electrical impossibility) versus being engineered to not likely have stuttering in real-world usage environments (cache size and write bandwidth to the underlying storage media).
 

coolVariable

Diamond Member
May 18, 2001
3,724
0
76
Originally posted by: Idontcare
Originally posted by: coolVariable
Originally posted by: Idontcare
Well you have to consider what causes stutter. Stutter is induced by overloading the internal buffers when attempting to write small files to random address locations in the media (be it SSD or spindle drive).

http://www.anandtech.com/cpuch...howdoc.aspx?i=3403&p=9

On SSD's with MLC chips the way the controller handles the cache buffer being entirely filled with write requests is it times out on any addressing any further additional requests (be they read or large file write, etc) until the myriad of small files are written.

Spindle-drives for whatever reason handle this situation more gracefully, so while you get lower 4KB random writes with spindle drives (BTW my 500GB 7200rpm Hitachi scores ~1.6MB/s) you do not get stutter.

What this particular benchmark is doing for us is giving us information as to how well a given drive handles small file random writes. The thinking is that the better it handles them (the higher the bandwidth results) the less likely it is that the drive will ever end up in a situation where the internal cache is overloaded and the drive starts to stutter.

So basically higher is better, all else being equal. So if you have the choice between an Apex drive with say 5 MB/s of 4KB random write performance versus a G.Skill SSD which has 3 MB/s of 4KB random write performance then going with the OCZ in this example would increase your odds of not experiencing stutter with the SSD in your rig.

It's just a proxy for gauging likelihood of stutter. Intel drives with 40MB/s bandwidth at 4KB random writes appears to be the holy-grail. We want cheaper drives from OCZ, Samsung, Corsair, etc to get their 4KB/s random write performance up to this level and we should feel reasonably confident at that point that there won't be any more stuttering to be concerned about.

I would say you are 90% there to a correct answer.
The difference being that intel drives and Samsung drives don't choke or time out on random writes. Only the jmicron controllers seem to be doing that (intel and samsung found a way around the issue).
OCZ is in fact one of the worst offenders concerning random writes and most people would be happy to get 5MB/s or even 3MB/s out of them.
The g.skill titan and the apex try to circumvent the issue by having 2 controllers ... giving you more random writes per second but still not addressing the issue ... which is why people still see stuttering, if somewhat less.

If stuttering is caused by a cache buffer getting filled then you have two ways to address it - increase the size of the cache buffer (this is what raid cards with dedicated cache effectively accomplish) or increase the aggregate write speed to the media so the flush rate on the cache is likely to be high enough to avoid cases where the cache is overloaded.

I am arguing that measuring 4KB random write bandwidth is giving us a gauge for how fast the system is handling flushing the cache. Higher 4KB random writes means the cache is being emptied at a faster rate, meaning for a given usage environment the user is less likely to overwhelm the cache on-board.

To my knowledge this is not a specific issue of the Jmicron controller, it is a specific issue of the underlying storage medium. MLC flash. What Intel and Samsung have done is increase the cache size (less likely to become fully filled) and increased the intelligence of the algorithms that handle preparing MLC cells for writes in advance (staging hidden capacity to be used, etc).

So I still believe that when it comes to gauging the propensity for a given SSD to induce stuttering, 4KB random write bandwidth is precisely the metric we want the drive to be evaluated with.

Based on this metric, and user reports thus far, it would appear that common desktop environments do not generate a small-file random write sequence that will overload the buffer on Intel's and Samsung's SSDs when the buffer flush rate (bandwidth of writing to the media) are taken into account. This minimum necessary bandwidth appears to be somewhere between 25MB/s and 40MB/s as determined by the 4KB/s random write benchmark of the crystaldiskmark program.

I have no doubt that a person could code a program that generated such a volume of small file random write sequences that even Intel's and Samsung's SSD buffers would be overwhelmed and stuttering would transpire unless the small file random write bandwidth were higher, say 60MB/s for example. But it would appear at present time the typical apps that desktop users are using do not cross this threshold, as such Intel and Samsung SSD's appear to be incapable of stuttering. There is a difference between not being able to stutter (as in physical/electrical impossibility) versus being engineered to not likely have stuttering in real-world usage environments (cache size and write bandwidth to the underlying storage media).

No. You are getting totally off track there. (You went from 90% correct to 0%)
The issue is that writing to MLC cells is slow because you need to read the cell, delete the cell and then write the cell (even if you are only writing one bit, the cell always holds 2 bits ... the other bit needs to be preserved).
NONE of the SSDs (excepte MAYBE for the new Vertex drives) actually use CACHE the way you are describing.
The intel SSD gets around the issue by always writing to a pre-set EMPTY area on the SSD. Then, when the drive is idle, it flushes those writes to where they actually belong.
Since they are written to disk, just not the place where they belong, there is no issue with data loss on power off.

The stuttering issue is SOLELY caused by the jmicron controllers because the intel controller uses the above workaround and the samsung must use a similar algorithm.

I would suggest you read the excellent AT article on the subject and check out the latest thread on the notebookreview forums (all 200+ pages o it).
 

Idontcare

Elite Member
Oct 10, 1999
21,118
59
91
Originally posted by: coolVariable
No. You are getting totally off track there. (You went from 90% correct to 0%)
The issue is that writing to MLC cells is slow because you need to read the cell, delete the cell and then write the cell (even if you are only writing one bit, the cell always holds 2 bits ... the other bit needs to be preserved).
NONE of the SSDs (excepte MAYBE for the new Vertex drives) actually use CACHE the way you are describing.
The intel SSD gets around the issue by always writing to a pre-set EMPTY area on the SSD. Then, when the drive is idle, it flushes those writes to where they actually belong.
Since they are written to disk, just not the place where they belong, there is no issue with data loss on power off.

The stuttering issue is SOLELY caused by the jmicron controllers because the intel controller uses the above workaround and the samsung must use a similar algorithm.

I would suggest you read the excellent AT article on the subject and check out the latest thread on the notebookreview forums (all 200+ pages o it).

You mean the very review I cited already?

Originally posted by: Idontcare
Well you have to consider what causes stutter. Stutter is induced by overloading the internal buffers when attempting to write small files to random address locations in the media (be it SSD or spindle drive).

http://www.anandtech.com/cpuch...howdoc.aspx?i=3403&p=9

In which Anand explains the cache correlation between Intel and Jmicron on this page:
By comparison, Intel's controller has a 256KB SRAM on-die. And I'm going to go out on a limb and assume that given Intel's experience with CPU caches, that its SRAM implementation is probably very well done.

With the JMicron based solutions, if you try and write too much to the drive (and trust me, it won?t take a lot) and the buffers get full, the controller tells the system that it?s not ready to write more data and you get a pause.

http://www.anandtech.com/cpuch...owdoc.aspx?i=3403&p=10

I cited Anand's article in my post above as a supportive reference of my statements, was not expecting to be called BS alongside Anand. But at least I'm in good company. There are worse things than being just as wrong as Anand on the source of the issue with SSD's.
 

DarkMadMax

Member
Oct 27, 2001
39
0
0
The intel SSD gets around the issue by always writing to a pre-set EMPTY area on the SSD. Then, when the drive is idle, it flushes those writes to where they actually belong.
Since they are written to disk, just not the place where they belong, there is no issue with data loss on power off.

This makes ZERO sense. why would anyone in right mind write to one area of SSD and rewrite later to another one ,wasting drive resources, time and common sense?

Whole thing with SSD is that writes happens non linearly - filling empty spaces first, then based on algorithm to avoid excessive overwrites of same cell.It doesn't matter for performances -since access to each cell has is identical (uneven access in HDD is caused by necessity to move head/platter)
 

FireChicken

Senior member
Jun 6, 2006
620
0
0
Originally posted by: DarkMadMax
The intel SSD gets around the issue by always writing to a pre-set EMPTY area on the SSD. Then, when the drive is idle, it flushes those writes to where they actually belong.
Since they are written to disk, just not the place where they belong, there is no issue with data loss on power off.

This makes ZERO sense. why would anyone in right mind write to one area of SSD and rewrite later to another one ,wasting drive resources, time and common sense?

Whole thing with SSD is that writes happens non linearly - filling empty spaces first, then based on algorithm to avoid excessive overwrites of same cell.It doesn't matter for performances -since access to each cell has is identical (uneven access in HDD is caused by necessity to move head/platter)

Yonder Lurker hath awakened
 

Idontcare

Elite Member
Oct 10, 1999
21,118
59
91
Originally posted by: FireChicken
Originally posted by: DarkMadMax
The intel SSD gets around the issue by always writing to a pre-set EMPTY area on the SSD. Then, when the drive is idle, it flushes those writes to where they actually belong.
Since they are written to disk, just not the place where they belong, there is no issue with data loss on power off.

This makes ZERO sense. why would anyone in right mind write to one area of SSD and rewrite later to another one ,wasting drive resources, time and common sense?

Whole thing with SSD is that writes happens non linearly - filling empty spaces first, then based on algorithm to avoid excessive overwrites of same cell.It doesn't matter for performances -since access to each cell has is identical (uneven access in HDD is caused by necessity to move head/platter)

Yonder Lurker hath awakened

You ain't kidding :shocked:

37 posts in 7+ yrs...
 

coolVariable

Diamond Member
May 18, 2001
3,724
0
76
Yet, my description is the simplified version how the intel drive does it.
Intel's controller differentiates the physical and logical location of a piece of information, so that when data is physically written, it is written to the location that is fastest and easiest for the SSD ? based on free blocks and anti-wear-and-tear algorithms ? and the information on the physical location is kept in ?virtual storage,? and the OS can?t tell the difference because the shuffling is done at the controller level.
The SRAM is not used as cache in the traditional sense but only for the controller's algorithms to keep track of physical and logical location of information.
And intel's ssds they have a pretty low write amplification.

got it now?
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |